
    .Cc>o                        g d Z ddlZddlZddlZddlmZ ddlm	Z	 	 ddl
Z
dan# e$ r daY nw xY wt          o ee
d          Zt          sdZdZn; ee
d	          rdZe
j        j        j        Zn ee
j        j        d
d          ZeduZd8dZd Zd9dZd Zd Zd Zd Zd ZdD ]Z eee          r eee          Z  nJ dD ]Z! eee!          r eee!          Z" nJ d Z#d Z$d Z% G d de&          Z'd Z( G d de&          Z)d Z*d Z+g fdZ,d  Z- G d! d"e&          Z.d# Z/d$ Z0 ej1        e0e2g%          Z3d& Z4d' Z5d( Z6d) Z7d* Z8d+ Z9d, Z:d- Z;d. Z<d/ Z=d0 Z>d1 Z?d2 Z@d3 ZAd4 ZBd5 ZCd6 ZDd7 ZEdS ):)atleast_2d_column_defaultuniqueify_listwidest_floatwidest_complexwide_dtype_forwidenrepr_pretty_delegaterepr_pretty_implSortAnythingKeysafe_scalar_isnan
safe_isnaniterablehave_pandashave_pandas_categoricalhave_pandas_categorical_dtypepandas_Categorical_from_codespandas_Categorical_categoriespandas_Categorical_codes safe_is_pandas_categorical_dtypesafe_is_pandas_categoricalsafe_issubdtypeno_picklingassert_no_picklingsafe_string_eq    N)	cStringIO   )optional_dep_okTFCategoricalapiis_categorical_dtypec                     t           rSt          | t          j        t          j        f          r-i }t          | d          r
| j        |d<    | j        | f||d|S t          j	        | |||          S )Nname)copydtype)r#   r$   subok)
r   
isinstancepandasSeries	DataFramehasattrr"   	__class__nparray)ar#   r$   r%   
extra_argss        *lib/python3.11/site-packages/patsy/util.pyasarray_or_pandasr1   <   s     Ha&-)9:;; 	H Jq&!! ,%&V
6"1;qGt5GGJGGG8ADU;;;;    c            	      
   dd l } t          t          g d                    t          j        u sJ |                                 5 }|                     ddt                     t          t          t          j        g dg                              t          j        u sJ t          t          t          j        g dg          d                    t          j        u sJ |J 	 d d d            n# 1 swxY w Y   t          j	        g d          }t          |          |u sJ t          |d          }t          j
        ||          sJ d|d<   t          j
        ||          rJ t          j        t          g dt          	          g d
          sJ t          g dt          	          j        t          j        t                    k    sJ t          ||j        	          }d|d<   |d         dk    sJ t          rt          j        g ddg d          }t          |          }|j        dk    sJ t          j
        |j        g d          sJ d|d<   |d         dk    sJ t          |d          }|j        dk    sJ t          j
        |j        g d          sJ t          j
        ||          sJ d|d<   t          j
        ||          rJ t          |t          	          j        t          j        t                    k    sJ t          ||j        	          }|j        dk    sJ t          j
        |j        g d          sJ d|d<   |d         dk    sJ t          j        g dgg ddg          }	t          |	          }
d|
j        d<   t          j
        |
j        g d          sJ t          j
        |
j        dg          sJ |	j        d         dk    sJ t          |	d          }t          j
        ||	          sJ t          j
        |j        g d          sJ t          j
        |j        dg          sJ d|j        d<   t          j
        ||	          rJ t          |	t          	          }|d         j        t          j        t                    k    sJ t          j        ||	          sJ t          j
        |j        g d          sJ t          j
        |j        dg          sJ t          |	|	d         j        	          }t          j
        |j        g d          sJ t          j
        |j        dg          sJ t          j
        |	|          sJ t          }	 dat          t          t          j        g d                              t          j        u sJ t          t          t          j        g dg                              t          j        u sJ 	 |ad S # |aw xY wd S )Nr   r         ignorethe matrix subclassT)r%   )r#   d   r$   g      ?g       @g      @c   A)
         r"   indexe   r>   )r=   BC)columnsrB   )r>   r=   F)warningstyper1   r,   ndarraycatch_warningsfilterwarningsPendingDeprecationWarningmatrixr-   array_equalallclosefloatr$   r   r'   r(   r"   rB   r)   locrF   )rG   wr.   a_copya_viewss_view1s_copys_view2dfdf_view1df_copydf_converteddf_view2
had_pandass                  r0   test_asarray_or_pandasr_   I   s   OOO!))),,--;;;;		 	 	"	" a*? 9	; 	; 	;%bi&<&<==>>"*LLLL%Iyyyk""$0 0 0 1 146I> 	> 	> 	>               	AQ1$$$$qt,,,F>!V$$$$$F1I~a(((((;(%@@@&( ( ( ( (YYYe444:bhuooMMMMq000FF1IQ42: 8%M)))#\\\BBB#A&&|s""""~gm\\\:::::u|"14000{c!!!!~flLLL99999~fa(((((r
>&!,,,,, %0006"(5//IIII#AQW555|s""""~gm\\\:::::u{yyyk&5oo%'D* * * %R(( #W~h.@@@@@~hnrd33333vg#%%%%#BT222~gr*****~go?????~gmbT22222"G>'2.....(5999C &"(5//9999{<,,,,,~l2OOODDDDD~l02$77777$Rr#w}===~h.@@@@@~hnrd33333 ~b(+++++ !
	%K*6=+C+CDDEEz" # # #*6+;YYYK+H+HIIJJz" # # # # %KKK*K$$$$q8% 8%s    B!C33C7:C78A?W< <X c                 V   |rQt           rJt          | t          j                  rt          j        |           S t          | t          j                  r| S t          j        |           } t          j        |           } | j        dk    r| 	                    d          } | j        dk    sJ | S )Nr   )r   r5   )
r   r&   r'   r(   r)   r,   asarray
atleast_1dndimreshape)r.   preserve_pandass     r0   r   r      s     ; a'' 	#A&&&6+,, 	H

1A
aAv{ IIg6Q;Hr2   c                     dd l } t          j        t          g d          dgdgdggk              sJ t          d          j        dk    sJ t          dg          j        dk    sJ t          dgg          j        dk    sJ t          dggg          j        dk    sJ t          g d          j        dk    sJ t          dgdgdgg          j        dk    sJ |                                 5 }|                     d	d
t                     t          t          t          j	        d                              t          j
        k    sJ |J 	 d d d            n# 1 swxY w Y   t          rt          t          t          j        ddg                              t          j
        k    sJ t          t          t          j        dgdgg                              t          j
        k    sJ t          t          t          j        ddg          d                    t          j        k    sJ t          t          t          j        dgdgg          d                    t          j        k    sJ t          j        g ddg d          }t          |d          }t          |t          j                  sJ t          j        |j        dgk              sJ t          j        |j        g dk              sJ |                                 5 }|                     d	d
t                     t          t          t          j	        d          d                    t          j
        k    sJ |J 	 d d d            n# 1 swxY w Y   t          t          g dd                    t          j
        k    sJ t          rt          }	 dat          t          t          j        ddg          d                    t          j
        k    sJ t          t          t          j        dgdgg          d                    t          j
        k    sJ 	 |ad S # |aw xY wd S )Nr   r4   r   r5   r6   )r   r   )r   r   r   r6   r   r7   r8   T)rf   )r>         hir.   bcrA   F)rG   r,   allr   shaperJ   rK   rL   rH   rM   rI   r   r'   r(   r)   r&   rF   rB   )rG   rR   rU   rY   r^   s        r0   test_atleast_2d_column_defaultrq      s}   OOO6+III66A3aS/IJJJJJ$Q''-7777$aS))/69999$qcU++1V;;;;$seW--3y@@@@$YYY//5????$qcA3_55;vEEEE		 	 	"	" a*? 9	; 	; 	;-bill;;<<
JJJJ	                3.v}aV/D/DEEFF: 	 	 	.v/?!qc
/K/KLLMM: 	 	 	.v}aV/D/D?CE E E F F#$ 	% 	% 	% .v/?!qc
/K/K?CE E E F F#$ 	% 	% 	% M,,,TIII&q$???"f./////vbjTF*+++++vbh///122222		 	 	"	" a*? 9	; 	; 	;.ry||?CE E E F F: 	 	 	                *999dKKKLLz     % 
		%K26=!Q3H3HCGI I I J Jz" # # # 263CaS1#J3O3OCGI I I J Jz" # # # # %KKK*K$$$$% %s3   2AEE"%E"A!NNNBQ Qc                    t           s|                     |          S t          | t          j                  s|                     |          S || j        k    r| S t          |          dk    rJ| j        d         dk    r9|d         | j        d         k    rt          d          | | j        d                  S t          d| j        d|          )Nr   r   zarrays have incompatible sizesz&cannot reshape a DataFrame with shape z
 to shape )	r   re   r&   r'   r)   rp   len
ValueErrorrF   )r.   	new_shapes     r0   pandas_friendly_reshaperv      s     $yy###a)** $yy### AG 
9~~ qwqzQ Q<171:% 	?=>>>1
*, - - -r2   c                     dd l } t          j        t          t          j        d                              dd          d          t          j        d                              dd                    sJ t          rwt          j        dg dig d	          }t          |d
          }t          |t          j                  sJ t          j
        |j        g d          sJ t          j
        |j        dg          sJ t          |d          }t          |t          j                  sJ t          j
        |j        g d          sJ |j        dk    sJ |                     t           t          |d           |                     t           t          |d           |                     t           t          |d           t          }	 da|                     t"          t          |d           |ad S # |aw xY wd S )Nr   r>      r5   )r5   rx   xr4   rl   )rB   rh   )r6   )   )r   r6   )r6   r6   F)pytestr,   rO   rv   arangere   r   r'   r)   r&   rN   rB   rF   r(   r"   raisesrt   AttributeError)r{   rY   noopsquozenr^   s        r0   test_pandas_friendly_reshaper      s   MMM;.ry}}/D/DQ/J/J/57 7y}},,Q224 4 4 4 4  %sIII.oooFFF&r622$ 011111~dj///:::::~dlSE22222)"d33'6=11111~gm___=====|s""""j"92tDDDj"92vFFFj"92vFFF 
	%K MM.*A2tLLL$KKK*K$$$$-% %s   $G. .G2c                     g }t                      }| D ]0}||vr*|                    |           |                    |           1|S N)setappendadd)seqseq_newseenobjs       r0   r   r     sR    G55D  d? 	NN3HHSMMMNr2   c                      t          g d          g dk    sJ t          g d          g dk    sJ t          g d          g dk    sJ d S )Nr4   )r   r6   r6   r5   r6   r   )r   r6   r5   )r6   r5   r   rz   r   r5   r6   )r6   r5   r   rz   )r    r2   r0   test_to_uniqueify_listr   %  sq    )))$$			1111,,,--::::///00LLL@@@@@@r2   )float128float96float64)
complex256
complex196
complex128c                 .   t          j        |           } t          | j        t           j                  st          | j        t           j                  rt          S t          | j        t           j                  rt          S t          d| j                  )Nz cannot widen a non-numeric type )
r,   rb   r   r$   integerfloatingr   complexfloatingr   rt   arrs    r0   r   r   7  su    
*S//C	2:.. 39bk22	B$6	7	7 
*SYYH
I
IIr2   c                 H    t          j        | t          |                     S )Nr:   )r,   rb   r   r   s    r0   r   r   @  s    :c!4!45555r2   c                     t          j        t          g d          g d          sJ t          g d          j        t          k    sJ t          j        t          g d          g d          sJ t          g d          j        t          k    sJ t          j        t          g d          g d          sJ t          g d          j        t
          k    sJ dd l} |                     t          t          dg           d S )Nr4   r;   )y      ?        r5   r6   r   rk   )	r,   rO   r   r$   r   r   r{   r}   rt   )r{   s    r0   test_wide_dtype_for_and_widenr   C  s   ;uYYY''33333!\1111;u___--yyy99999!!'<7777;u\\\**III66666$6666MMM
MM*edV,,,,,r2   c                   6    e Zd Zd Zd Zd Zd ZeZd Zd Z	dS )PushbackAdapterc                 "    || _         g | _        d S r   )_it_pushed)selfits     r0   __init__zPushbackAdapter.__init__N  s    r2   c                     | S r   r   r   s    r0   __iter__zPushbackAdapter.__iter__R  s    r2   c                 :    | j                             |           d S r   )r   r   r   r   s     r0   	push_backzPushbackAdapter.push_backU  s    C     r2   c                 t    | j         r| j                                         S t          j        | j                  S r   )r   popsixadvance_iteratorr   r   s    r0   nextzPushbackAdapter.nextX  s5    < 	2<##%%% '111r2   c                     	 t          j        |           }n# t          $ r t          d          w xY w|                     |           |S )Nzno more data)r   r   StopIterationrt   r   r   s     r0   peekzPushbackAdapter.peek`  sY    	-&t,,CC 	- 	- 	-^,,,	-s
s    1c                 R    	 |                                   dS # t          $ r Y dS w xY w)NTF)r   rt   r   s    r0   has_morezPushbackAdapter.has_moreh  s?    	IIKKK 4  	 	 	55	s    
&&N)
__name__
__module____qualname__r   r   r   r   __next__r   r   r   r2   r0   r   r   M  su            ! ! !2 2 2 H      r2   r   c                     t          t          g d                    } |                                 sJ t          j        |           dk    sJ |                     d           t          j        |           dk    sJ t          j        |           dk    sJ |                                 dk    sJ |                     d           |                                 dk    sJ |                     d           |                                 dk    sJ |                                 sJ t          |           g dk    sJ |                                 rJ d S )	N)r   r5   r6   rz   r   r   r5   r6   r>   r?   )r?   r>   r6   rz   )r   iterr   r   r   r   r   list)r   s    r0   test_PushbackAdapterr   p  sG   	lll++	,	,B;;==##q((((LLOOO##q((((##q((((7799>LL7799?LL7799?;;==88~~~%%%%{{}}r2   c                   :    e Zd Zd Zd Zd
dZd Zd Zd Zd Z	d	S )_MiniPPrinterc                 :    t                      | _        d| _        d S Nr   )StringIO_outindentationr   s    r0   r   z_MiniPPrinter.__init__  s    JJ	r2   c                 :    | j                             |           d S r   r   write)r   texts     r0   r   z_MiniPPrinter.text  s    	r2    c                 :    | j                             |           d S r   r   )r   seps     r0   	breakablez_MiniPPrinter.breakable  s    	r2   c                 0    |                      |           d S r   r   r   _r   s      r0   begin_groupz_MiniPPrinter.begin_group      		$r2   c                 0    |                      |           d S r   r   r   s      r0   	end_groupz_MiniPPrinter.end_group  r   r2   c                     t          |d          r|                    | d           d S |                     t          |                     d S )N_repr_pretty_F)r*   r   r   reprr   s     r0   prettyz_MiniPPrinter.pretty  sN    3(( 	!dE*****IId3ii     r2   c                 4    | j                                         S r   )r   getvaluer   s    r0   r   z_MiniPPrinter.getvalue  s    y!!###r2   N)r   )
r   r   r   r   r   r   r   r   r   r   r   r2   r0   r   r     s                   ! ! !$ $ $ $ $r2   r   c                 p    t                      }|                    |            |                                S r   )r   r   r   )r   printers     r0   _mini_prettyr     s/    __7
>>#




r2   c                 l    t           rdt          j        v rddlm}  ||           S t          |           S )NIPythonr   )r   )r   sysmodulesIPython.lib.prettyr   r   )r   r   s     r0   r   r     sH      !93 !------vc{{C   r2   c                    	 |j         j        }                     t          |          dz   |d           dg	 	fd}|D ]!} |                                  |           "|D ]s\  }} |                                  t          |          dz   |d                                |                                t          |          dz   d           t                     t          |          dz   d           d S )Nr   (Fc                  t    d         r)                      d                                             dd<   d S )Nr   ,T)r   r   )pstarteds   r0   new_itemz"repr_pretty_impl.<locals>.new_item  s8    1: 	FF3KKKKKMMM


r2   = ))r+   r   r   rs   r   r   )
r   r   argskwargsr"   r   arglabelvaluer   s
   `        @r0   r	   r	     s   =!DMM#d))a-$$$111gG     
   


	 ( (u


	c%jj1nuuu&6777		CJJNB''''KKD		As#####r2   c                      t          d          dk    sJ t                      }  G d dt                    }t          |  |            ddgddg           |                                 d	k    sJ d S )
Nasdfz'asdf'c                       e Zd ZdS )!test_repr_pretty.<locals>.MyClassNr   r   r   r   r2   r0   MyClassr             r2   r   r.   r   )foobar)r   r   z'MyClass('a', 1, foo='bar', asdf='asdf'))r   r   objectr	   r   )r   r   s     r0   test_repr_prettyr     s    ''83333ooG    &   Wggii1X0@AC C C!JJJJJJJr2   c                        e Zd Zd Zd Zd ZdS )r
   c                     || _         d S r   r   r   s     r0   r   zSortAnythingKey.__init__  s    r2   c                 H    	 | j         |k     S # t          $ r
 t          cY S w xY wr   )r   	TypeErrorNotImplemented)r   	other_objs     r0   
_python_ltzSortAnythingKey._python_lt  s;    	"8i'' 	" 	" 	"!!!!	"s   
 !!c                    t          |t                    sJ |                     |j                  }|t          ur|S |                     d          t          urdS |                    d          t          urdS | j        |j        k    rdS | j        j        j        t          | j                  f|j        j        j        t          |j                  fk     S )Nr   TF)r&   r
   r  r   r  r+   r   id)r   otherresults      r0   __lt__zSortAnythingKey.__lt__  s    %11111++' 	M ??1^3 	4An4 	5 8uy  	5#,bll;9&/EI?@ 	Ar2   N)r   r   r   r   r  r  r   r2   r0   r
   r
     sF          	" 	" 	"A A A A Ar2   r
   c                     t          g dt                    g dk    sJ t          ddgt                    ddgk    sJ t          g dt                    g dk    sJ  G d d	t                    }  G d
 dt                    } G d dt                    } |             } |            } |            }t                      }t          ||d||gt                    d||||gk    sJ d S )N)r?   r>   r      )key)r   r>   r
  r?   r>   g      )r>   r.        4@rm   )r>   r  r.   rm   c                       e Zd ZdS )test_SortAnythingKey.<locals>.aNr   r   r2   r0   r.   r    r   r2   r.   c                       e Zd ZdS )test_SortAnythingKey.<locals>.bNr   r   r2   r0   rm   r    r   r2   rm   c                       e Zd ZdS )test_SortAnythingKey.<locals>.zNr   r   r2   r0   zr  !  r   r2   r  r   )sortedr
   r   )r.   rm   r  a_objb_objz_objo_objs          r0   test_SortAnythingKeyr    si   ///777???JJJJ2t*/222tRj@@@@&&&O<<<@T@T@TTTTT    F       F       F   ACCEACCEACCEHHEE5!UE2HHH5%./ 0 0 0 0 0r2   c                     	 t          j        t          |                     S # t          t          t
          f$ r Y dS w xY wNF)r,   isnanrP   r   rt   NotImplementedError)ry   s    r0   r   r   ,  sG    xa!!!z#67   uus    # >>)otypesc                     t          d          rJ t          d           rJ t          d          rJ t          d          rJ t          t          j        g d                    rJ t          t          j        g          rJ t          t          j                  sJ t          t          j        t          j                            sJ t          t          t          j                            sJ d S )NTsadfr4   )r   r,   rb   nanfloat32rP   r   r2   r0   test_safe_scalar_isnanr#  3  s     &&&&& &&&&& ((((( +++++ III!6!677777 "&*****RV$$$$$RZ//00000U26]]+++++++r2   c            	      2   t          j        t          ddd t           j        dg          g d          sJ t          t           j                  j        dk    sJ t          t           j                  sJ t          d           rJ t          d          rJ d S )Nr   Tr   )FFFTFr   )r,   rN   r   r!  rd   r   r2   r0   test_safe_isnanr%  >  s    >*atRVV%DEE<<<> > > > >bf"a''''bf$&!!!!!!!r2   c                 J    	 t          |            n# t          $ r Y dS w xY wdS )NFT)r   	Exceptionr   s    r0   r   r   G  s;    S				   uu4s    
  c                      t          d          sJ t          g           sJ t          ddi          sJ t          d          rJ t          t                     rJ d S )Nr   r.   r   )r   r   r2   r0   test_iterabler)  N  sl    FB<<S!H{{!!!!!!!r2   c                     t           sJ t          j        |           } t          t          j        d          r t          j                            | |          S t	          j        | |          S )N
from_codes)r   r,   rb   r*   r'   r   r+  )codes
categoriess     r0   r   r   f  s`    """" JuEv!<00 5!,,UJ???!%444r2   c                     t           sd S t          g dddg          } t          j        t          j        |           d d         g dk              sJ t          j        t          j        |           d                   sJ d S )Nr   r   r   ra   r.   rm   ra   )rm   rm   r.   )r   r   r,   ro   rb   r  )rn   s    r0   "test_pandas_Categorical_from_codesr0  q  s    " %mmmc3Z@@A6"*Q--$7888888BJqMM"%&&&&&&&r2   c                 l    t          | d          r| j        } t          | d          r| j        S | j        S )Ncatr-  )r*   r2  r-  levelsr2  s    r0   r   r   y  s?     sE gsL!! ~zr2   c                 l    t          | d          r| j        } t          | d          r| j        S | j        S )Nr2  r,  )r*   r2  r,  labelsr4  s    r0   r   r     s?     sE gsG yzr2   c                     t           sd S t          g dddg          } t          j        t	          |           ddgk              sJ t          j        t          |           g dk              sJ t          rft          j        |           }t          j        t	          |          ddgk              sJ t          j        t          |          g dk              sJ d S d S )Nr/  r.   rm   )	r   r   r,   ro   r   r   r   r'   r(   )rn   rU   s     r0   !test_pandas_Categorical_accessorsr8    s    " %mmmc3Z@@A6/22sCj@AAAAA6*1-->?????$ DM!v3A663*DEEEEEv.q11]]]BCCCCCD D 	DCr2   c                 2    t           sdS t          |           S r  )r   _pandas_is_categorical_dtype)dts    r0   r   r     s    ( u'+++r2   c                     t           sdS t          | t          j                  rdS t	          | d          rt          | j                  S dS )NFTr$   )r   r&   r'   r   r*   r   r$   )datas    r0   r   r     sP    " u$*++ ttW </
;;;5r2   c                     t          t          j        d                    rJ t          r't	          j        ddg          } t          |           sJ t          r)t	          j        ddgd          }t          |          sJ d S d S )Nr>   r.   rm   categoryr:   )r   r,   r|   r   r'   r   r   r(   )c_objs_objs     r0   test_safe_is_pandas_categoricalrB    s    )")B--88888 1"C:..)%00000$ 1sCj
;;;)%000001 100r2   c                 N    t          |           rdS t          j        | |          S r  )r   r,   
issubdtype)dt1dt2s     r0   r   r     s)    ',, u=c"""r2   c                     t          t          t          j                  sJ t          t          j        t
                    t          j                  sJ t          t          t          j                  rJ t          t          j        t
                    t          j                  rJ t          r4t          j	        ddgd          } t          | t          j                  rJ d S d S )Nr.   rm   r?  r:   )
r   intr,   r   r$   rP   r   r   r'   r(   )	bad_dtypes    r0   test_safe_issubdtyperJ    s    3
+++++28E??BK88888sBK00000rx
;;;;;$ :M3*J???	"9bj99999: :99r2   c                       t          d          )NzeSorry, pickling not yet supported. See https://github.com/pydata/patsy/issues/26 if you want to help.)r  )r   r   s     r0   r   r     s    
	  r2   c                 X    dd l }dd l}|                    t          |j        |            d S r   )pickler{   r}   r  dumps)r   rM  r{   s      r0   r   r     s3    MMMMMM
MM%v|S99999r2   c                 F    t          | t          j                  r| |k    S dS r  )r&   r   string_types)r   r   s     r0   r   r     s&    #s'(( e|ur2   c                      t          dd          sJ t          dd          rJ t          j        st          t          d          d          sJ t          t	          j        d          d          rJ d S )Nr   r   )r5   r5   )r   r   PY3unicoder,   emptyr   r2   r0   test_safe_string_eqrU    sz    %'''''eU+++++7 5genne44444bhv..6666666r2   )FNF)F)F__all__r   numpyr,   r   	six.movesr   r   compatr   r'   r   ImportErrorr*   r   r   r:  r   typesr    getattrcorecommonr1   r_   r   rq   rv   r   r   r   
float_typer   complex_typer   r   r   r   r   r   r   r   r   r   r	   r   r
   r  r   	vectorizeboolr   r#  r%  r   r)  r   r0  r   r   r8  r   r   rB  r   rJ  r   r   r   rU  r   r2   r0   <module>rc     s    & 


     



 + + + + + + # # # # # #MMM KK    KKK 'I776=+I+I  6$)!#'  wvu 	6(,%'-z'7'L$$ (/wv{/A/Et(M (M$)E04*5%

< 
< 
< 
<O% O% O%l   8% 8% 8%@- - - % % %<  A A A
 5  Jwr: wr:.. L>  Lwr<    \22 LJ J J6 6 6- - -! ! ! ! !f ! ! !F  H$ $ $ $ $F $ $ $4  
! ! !& +- $ $ $ $&K K K:!A !A !A !A !Af !A !A !AF0 0 0&  
 R\+TF;;;
	, 	, 	," " "  " " "0	5 	5 	5' ' '	 	 		 	 	
D 
D 
D, , ,  	1 	1 	1.# # #
: : :  : : :  7 7 7 7 7s   % //