
    phV                        S SK Jr  S SKJrJrJr  S SKJrJr  S SK	J
r
  S SK	JrJr  S SK	JrJr  / SQr " S S	\5      r\" / 5      r " S
 S\5      rS r " S S\5      rS rS r " S S\5      rS rS rS rS rS rS rS rS r S r!S r"S r#S r$S r%S  r&S! r'S" r( " S# S$\5      r)0 S%S&/ 4_S'S&/ 4_S(S&/ 4_S)S&S)/4_S*S&/ 4_S+S,/ 4_S-S,/ 4_S.S&/ 4_S/S&/ 4_S0S,/ 4_S1S&/ 4_S2S,/ 4_S3S&/ 4_S4S,/ 4_S5S&S)/4_S6S,S)/4_S7S,S)/4_0 S8S&S)/4_S9S&/ 4_S:S&S)S;/4_S<S&S)S;/4_S=S&S)S;/4_S>S&S)S;/4_S?S&S)S;/4_S@S&S)/4_SAS&S)S;/4_SBS&S)SC/4_SDS&S)/4_SES&/ SFQ4_SGS&S)SH/4_SIS&SJ/4_SKS&SJ/4_SLS&SJSM/4_SNS&SMSO/4_E0 SPS&SJ/4_SQS&/ SRQ4_SSS&SM/4_STS&/ SUQ4_SVS&/ 4_SWS&/ 4_SXS&/ 4_SYS&/ 4_SZS&/ S[Q4_S\S&/ S[Q4_S]S&/ S^Q4_S_S&/ S`Q4_SaS&/ S[Q4_SbS&/ ScQ4_SdS&/ SeQ4_SfS&/ SgQ4_ShS&S)SJ/4_E0 SiS&/ SjQ4_SkS&/ SlQ4_SmS&/ SnQ4_SoS&S)/4_SpS&/ SqQ4_SrS&/ SsQ4_StS&S)/4_SuS&S)S;/4_SvS&/ S[Q4_SwS,/ S[Q4_SxS,/ 4_SyS&S)S;/4_SzS&/ S&S)S;/4_S{S,S|/S&S)S;/4_S}S,S|/S&S)S;/4_S~S,/ SQS&S)S;/4_SS,/ S&/ 4_E0 SS&S|/S&S)S;/4_SS&/ SQ4_SS&/ SQ4_SS&S;SJ/4_SS&/ SQ4_SS&/ SQ4_SS&/ SQ4_SS&/ SQ4_SS&/ 4_SS,/ 4_SS&/ 4_SS,/ 4_SS&S)/4_SS&S)/4_SS&S)/4_SS,/ 4_Er*/ SQr+S r,S r-S r.S r/S r0g)    
PatsyError)	ParseNodeTokenparse_formula)EvalEnvironment
EvalFactor)uniqueify_list)repr_pretty_delegaterepr_pretty_impl)no_picklingassert_no_pickling)Term	ModelDesc	INTERCEPTc                   D    \ rS rSrSrS rS rS rS r\	r
S rS r\rS	rg
)r      at  The interaction between a collection of factor objects.

This is one of the basic types used in representing formulas, and
corresponds to an expression like ``"a:b:c"`` in a formula string.
For details, see :ref:`formulas` and :ref:`expert-model-specification`.

Terms are hashable and compare by value.

Attributes:

.. attribute:: factors

   A tuple of factor objects.
c                 6    [        [        U5      5      U l        g N)tupler
   factors)selfr   s     bC:\Users\julio\OneDrive\Documentos\Trabajo\IdeasFrscas\Cabanna\env\Lib\site-packages\patsy/desc.py__init__Term.__init__*   s    ^G45    c                     [        U[        5      =(       a+    [        UR                  5      [        U R                  5      :H  $ r   )
isinstancer   	frozensetr   r   others     r   __eq__Term.__eq__-   s5    %& 
9U]]+CyLLH
 ,
 	
r   c                     X:X  + $ r    r    s     r   __ne__Term.__ne__2   s      r   c                 J    [        [        [        U R                  5      45      $ r   )hashr   r   r   r   s    r   __hash__Term.__hash__5   s    T9T\\2344r   c                 V    U(       a   e[        X[        U R                  5      /5        g r   )r   listr   r   pcycles      r   _repr_pretty_Term._repr_pretty_:   s     y4#5"67r   c                     U R                   (       a9  SR                  U R                    Vs/ s H  oR                  5       PM     sn5      $ gs  snf )z+Return a human-readable name for this term.:	Intercept)r   joinname)r   fs     r   r8   	Term.name>   s7    <<88t||<|!VVX|<== =s   A)r   N)__name__
__module____qualname____firstlineno____doc__r   r"   r&   r+   r   __repr__r2   r8   r   __getstate____static_attributes__r%   r   r   r   r      s3    6

!5 $H8 Lr   r   c                        \ rS rSrS rS rSrg)_MockFactorK   c                     Xl         g r   _name)r   r8   s     r   r   _MockFactor.__init__L   s    
r   c                     U R                   $ r   rG   r*   s    r   r8   _MockFactor.nameO   s    zzr   rG   N)r;   r<   r=   r>   r   r8   rB   r%   r   r   rD   rD   K   s    r   rD   c                     [        / SQ5      R                  S:X  d   e[        SS/5      [        SS/5      :X  d   e[        [        SS/5      5      [        [        SS/5      5      :X  d   e[        S5      n [        S5      n[        X/5      R	                  5       S:X  d   e[        X/5      R	                  5       S:X  d   e[        / 5      R	                  5       S	:X  d   e[        [        / 5      5        g )
N)      rM   )rM   rN   rM   rN   aba:bzb:ar6   )r   r   r)   rD   r8   r   )f1f2s     r   	test_TermrT   S   s    	?""f,,,A<4A<'''aVdAq6l!3333	S	B	S	B> E)))> E)))8==?k)))tBx r   c                   B    \ rS rSrSrS r\rS rS r	\
S 5       r\rSrg)	r   `   a  A simple container representing the termlists parsed from a formula.

This is a simple container object which has exactly the same
representational power as a formula string, but is a Python object
instead. You can construct one by hand, and pass it to functions like
:func:`dmatrix` or :func:`incr_dbuilder` that are expecting a formula
string, but without having to do any messy string manipulation. For
details see :ref:`expert-model-specification`.

Attributes:

.. attribute:: lhs_termlist
               rhs_termlist

   Two termlists representing the left- and right-hand sides of a
   formula, suitable for passing to :func:`design_matrix_builders`.
c                 D    [        U5      U l        [        U5      U l        g r   )r
   lhs_termlistrhs_termlist)r   rX   rY   s      r   r   ModelDesc.__init__s   s    *<8*<8r   c                 d    U(       a   e[        UU / SU R                  4SU R                  4/5      $ )NrX   rY   )r   rX   rY   r/   s      r   r2   ModelDesc._repr_pretty_y   s>    yd//0>4CTCT2UV	
 	
r   c                    S nSR                  U R                   Vs/ s H
  o!" U5      PM     sn5      nU(       a  US-  nOUS-  nU R                  [        /:X  a  X1" [        5      -  nU$ / n[        U R                  ;  a  UR	                  S5        UU R                   Vs/ s H  o"[        :w  d  M  U" U5      PM     sn-  nUSR                  U5      -  nU$ s  snf s  snf )a  Returns a human-readable representation of this :class:`ModelDesc`
in pseudo-formula notation.

.. warning:: There is no guarantee that the strings returned by this
   function can be parsed as formulas. They are best-effort
   descriptions intended for human users. However, if this ModelDesc
   was created by parsing a formula, then it should work in
   practice. If you *really* have to.
c                 8    U [         :X  a  gU R                  5       $ )N1)r   r8   )terms    r   	term_code%ModelDesc.describe.<locals>.term_code   s    y yy{"r   z + z ~ z~ 0)r7   rX   rY   r   append)r   ra   r`   result
term_namess        r   describeModelDesc.describe   s    	# 9J9JK9JYt_9JKLeOFdNF+i	**F  J 1 11!!#&,0,=,=,=DAR	$,= J ejj,,F Ls   C"C3Cc                     [        U[        5      (       a  UnO[        U5      n[        5       R	                  USS9n[        X05      (       d   eU$ )zConstruct a :class:`ModelDesc` from a formula string.

:arg tree_or_string: A formula string. (Or an unevaluated formula
  parse tree, but the API for generating those isn't public yet. Shh,
  it can be our secret.)
:returns: A new :class:`ModelDesc`.
F)require_evalexpr)r   r   r   	Evaluatoreval)clstree_or_stringtreevalues       r   from_formulaModelDesc.from_formula   sM     ni00!D 0D   >%%%%%r   )rX   rY   N)r;   r<   r=   r>   r?   r   r   r@   r2   rg   classmethodrq   r   rA   rB   r%   r   r   r   r   `   s9    $9 $H
 D    Lr   r   c                     [        S5      n [        S5      n[        [        [        U /5      /[        U /5      [        X/5      /5      nUR                  [        [        U /5      /:X  d   eUR
                  [        U /5      [        X/5      /:X  d   e[        UR                  5       5        UR                  5       S:X  d   e[        U5        [        / / 5      R                  5       S:X  d   e[        [        // 5      R                  5       S:X  d   e[        [        /[        /5      R                  5       S:X  d   e[        [        /[        [        U/5      /5      R                  5       S:X  d   eg )NrO   rP   z1 + a ~ 0 + a + a:bz~ 0z1 ~ 0z1 ~ 1z1 ~ b)	rD   r   r   r   rX   rY   printrg   r   )rR   rS   ms      r   test_ModelDescrw      s4   	S	B	S	B9dB4j)D"JbX+GHA>>ird4444>>dB4j$x.9999	!**,::<0000qR%%'5000i["%..0G;;;i[9+.779WDDDi[9dB4j"9:CCEPPPr   c                      S[        S5      4 Hi  n [        R                  U 5      nUR                  [	        [        S5      /5      /:X  d   eUR                  [        [	        [        S5      /5      /:X  a  Mi   e   g )Nzy ~ xyx)r   r   rq   rX   r   r	   rY   r   )inputmds     r   test_ModelDesc_from_formular}      su    =12##E**S/"##
 
 	
 
 9dJsO3D.E"FFFF 3r   c                   ,    \ rS rSrSrS r\rS r\	r
Srg)IntermediateExpr   zFThis class holds an intermediate result while we're evaluating a tree.c                     Xl         X l        X0l        [        [	        U5      5      U l        U R                   (       a  U R                  (       d   eU R                   (       a  U R                  (       a   eg g r   )	interceptintercept_originintercept_removedr   r
   terms)r   r   r   r   r   s        r   r   IntermediateExpr.__init__   sT    " 0!2>%01
>>((((NNt'='=>>'=Nr   c                     U(       a   e[        UU U R                  U R                  U R                  U R                  /5      $ r   )r   r   r   r   r   r/   s      r   _pretty_repr_IntermediateExpr._pretty_repr_   s=    y^^T22D4J4JDJJW
 	
r   )r   r   r   r   N)r;   r<   r=   r>   r?   r   r   r@   r   r   rA   rB   r%   r   r   r   r      s    L? $H
 Lr   r   c                 (    U (       a
  [         4U-   $ U$ r   )r   )doitr   s     r   _maybe_add_interceptr      s    |e##r   c           	         UR                    Vs/ s H  o R                  U5      PM     nn[        U5      S:X  a  UR                  S[	        SS S/ 5      5        [        U5      S:X  d   e[        [        US   R                  US   R                  5      [        US   R                  (       + US   R                  5      5      $ s  snf )NrM   r   FTrN   )
argsrl   leninsertr   r   r   r   r   r   	evaluatorro   argexprss       r   _eval_any_tilder      s    ,0II6IS^^C IE6
5zQ 	Q(dB?@u:??U1X//q@q!;!;;U1X^^L  7s   Cc                    U R                  UR                  S   5      nUR                  S   R                  S:X  a  [        SS SUR                  5      $ U R                  UR                  S   5      nUR
                  (       a/  [        SUR                  SUR                  UR                  -   5      $ [        UR
                  UR                  UR                  UR                  UR                  -   5      $ )Nr   rM   ZEROFTrl   r   typer   r   r   r   r   )r   ro   	left_expr
right_exprs       r   _eval_binary_plusr      s    tyy|,Iyy|F"tT9??CC^^DIIaL1
#++*"2"22	  $##**++*"2"22	 r   c                 b   U R                  UR                  S   5      nUR                  S   R                  S:X  a%  [        SUR                  S   SUR                  5      $ UR                  S   R                  S:X  a  [        SS SUR                  5      $ U R                  UR                  S   5      nUR                   Vs/ s H  oDUR                  ;  d  M  UPM     nnUR
                  (       a  [        SS SU5      $ [        UR
                  UR                  UR                  U5      $ s  snf )Nr   rM   r   TFONEr   )r   ro   r   r   r`   r   s         r   _eval_binary_minusr     s    tyy|,Iyy|F"diilE9??KK	1		e	#tT9??CC^^DIIaL1
"+//R/$AQAQ5Q/R#E4u==###**++	 	 Ss   D,D,c                 R    U R                   (       a  [        SU R                  5      eg )Nz1intercept term cannot interact with anything else)r   r   r   )exprs    r   _check_interactabler   *  s'    ~~B!!
 	
 r   c                     X4 H  n[        U5        M     / nU R                   HG  nUR                   H4  nUR                  [        UR                  UR                  -   5      5        M6     MI     [        SS SU5      $ )NF)r   r   rd   r   r   r   )r   r   r   r   l_termr_terms         r   _interactionr   2  sk    'D! (E// &&FLLfnnv~~=>? ' " E466r   c           	          UR                    Vs/ s H  o R                  U5      PM     nn[        SS SUS   R                  US   R                  -   [	        U6 R                  -   5      $ s  snf )NFr   rM   )r   rl   r   r   r   r   s       r   _eval_binary_prodr   <  sa    ,0II6IS^^C IE6tUE!HNNU1X^^;lE>R>X>XX  7s   A)c                    U R                  UR                  S   5      nU R                  UR                  S   5      n[        UR                  5      n[	        U5        / nUR                   H  nU[        UR
                  5      -  nM     [        SS S[        U5      /5      nU[        [        Xs5      R                  5      -  n[        SS SU5      $ )Nr   rM   F)	rl   r   r.   r   r   r   r   r   r   )r   ro   r   r   r   left_factorsr`   left_combined_exprs           r   _eval_binary_divr   K  s    tyy|,I		!-J!E	"LT\\**  )%utL?Q>RS	T,1>DDEEEE466r   c                 p    UR                    Vs/ s H  o R                  U5      PM     nn[        U6 $ s  snf r   )r   rl   r   r   s       r   _eval_binary_interactr   Z  s1    ,0II6IS^^C IE6 7s   3c                    U R                  UR                  S   5      n[        U5        SnUR                  S   R                  S;   a/  UR                  S   R                  R
                  n [        U5      nUS:  a  [        SUR                  S   5      eUR                  nUn[        [        UR                  5      U5      n[        SU5       H  n[        X&5      nXVR                  -   nM     [        SS SU5      $ ! [         a     Nf = f)Nr   rM   )r   NUMBERz '**' requires a positive integerF)rl   r   r   r   tokenextraint
ValueErrorr   r   minr   ranger   r   )r   ro   r   powerr   	all_termsbig_expris           r   _eval_binary_powerr   _  s    tyy|,I	"Eyy|--yy|!!''	IE qy;TYYq\JJIHIOO$e,E1e_	4.	  E4	::  		s   -C> >
D
Dc                 >    U R                  UR                  S   5      $ )Nr   )rl   r   r   ro   s     r   _eval_unary_plusr   u  s    >>$))A,''r   c                     UR                   S   R                  S:X  a  [        SUR                  S/ 5      $ UR                   S   R                  S:X  a  [        SS S/ 5      $ [	        SU5      e)Nr   r   TFr   z)Unary minus can only be applied to 1 or 0)r   r   r   originr   r   s     r   _eval_unary_minusr   y  sb    yy|F"dkk5"==	1		e	#tT266DdKKr   c                     [        SS S/ 5      $ )NFT)r   r   s     r   
_eval_zeror     s    E4r22r   c                 2    [        SUR                  S/ 5      $ )NTF)r   r   r   s     r   	_eval_oner     s    D$++ub99r   c                     [        SU5      e)Nz4numbers besides '0' and '1' are only allowed with **r   r   s     r   _eval_numberr     s    
NPT
UUr   c                     [        UR                  R                  UR                  S9n[	        SS S[        U/5      /5      $ )N)r   F)r	   r   r   r   r   r   )r   ro   factors      r   _eval_python_exprr     s6    

((=FE4vh0@AAr   c                   *    \ rS rSrS rS rSS jrSrg)rk   i  c                    0 U l         U R                  SS[        5        U R                  SS[        5        U R                  SS[        5        U R                  SS[        5        U R                  SS[
        5        U R                  SS[        5        U R                  SS[        5        U R                  S	S[        5        U R                  SS[        5        U R                  SS[        5        U R                  S
S[        5        U R                  SS[        5        U R                  SS[        5        U R                  SS[        5        0 U l        g )N~rN   rM   +-*/r5   z**r   r   r   r   PYTHON_EXPR)_evaluatorsadd_opr   r   r   r   r   r   r   r   r   r   r   r   r   stashr*   s    r   r   Evaluator.__init__  s    CO,CO,C-.C./C-.C,-C12D!/0C,-C-.FAz*E1i(Ha.M1&78 
r   c                 "    X0R                   X4'   g r   )r   )r   oparityr   s       r   r   Evaluator.add_op  s    &/#r   c                    S n[        U[        5      (       d   eUR                  [        UR                  5      4nX@R
                  ;  a%  [        SUR                  < S3UR                  5      eU R
                  U   " X5      nU(       aB  [        U[        5      (       d-  [        U[        5      (       a  [        SU5      e[        SU5      eU$ )Nz#I don't know how to evaluate this 'z
' operatorz2~ can only be used once, and only at the top levelzBcustom operator returned an object that I don't know how to handle)
r   r   r   r   r   r   r   r   r   r   )r   ro   rj   re   keys        r   rl   Evaluator.eval  s    $	****yy#dii.)&&&HL		S

  !!#&t2Jv7G$H$H&),, KT  ! 	  r   )r   r   N)T)r;   r<   r=   r>   r   r   rl   rB   r%   r   r   rk   rk     s    60r   rk    T z 
 rO   r_   rc   Fz- 1z- 0z+ 1z+ 0z0 + 1z1 + 0z1 - 0z0 - 1z1 + az0 + aza - 1za - 0z1 - aa + brP   z(a + b)za + ((((b))))za + ((((+b))))za + ((((b - a))))z	a + a + aza + (b - a)za + np.log(a, base=10)znp.log(a, base=10)z0a + np.log(a, base=10) - np . log(a , base = 10)za + (I(b) + c))rO   zI(b)cza + I(b + c)zI(b + c)rQ   rO   rP   za:b:az	a:(b + c)rO   r   z	(a + b):crP   r   z	a:(b - c)zc + a:c + a:(b - c))r   r   r   z	(a - b):czb + b:c + (a - b):c)rP   r   r   z	a:b - a:bz	a:b - b:az1 - (a + b)za + b - (a + b)za * b)rO   rP   r   z	a * b * aza * (b + c))rO   rP   r   r   r   z(a + b) * c)rO   rP   r   r   r   za * (b - c)zc + a:c + a * (b - c))r   r   rO   rP   r   z(a - b) * c)rO   r   r   zb + b:c + (a - b) * c)rP   r   rO   r   r   za/bz	(a + b)/c)rO   rP   rO   rP   r   zb + b:c + (a - b)/c)rP   r   rO   r   z	a/(b + c))rO   r   r   za ** 2z(a + b + c + d) ** 2)
rO   rP   r   dr   r   rO   r   r   rP   r   r   r   z(a + b + c + d) ** 3)rO   rP   r   r   r   r   r   r   r   r   r   )rO   rP   r   )rO   r   r   )rP   r   r   za + +az~ a + bz~ a*bz	~ a*b + 0z~ -1z	0 ~ a + bz	1 ~ a + bz	y ~ a + bry   z0 + y ~ a + bz0 + y * z ~ a + b)ry   z)ry   r   z-1 ~ 1z1 + y ~ a + bz	a + b * c)rO   rP   r   r   z	a * b + c)rO   rP   r   r   z	a * b - az	a + b / c)rO   rP   r   z	a / b + c)rO   r   r   za*b:c)rO   r   r   za:b*c)r   r   r   z~ 1 + 1 + 0 + 1z~ 0 + 1 + 0z~ 0 - 1 - 1 + 0 + 1z~ 1 - 1z~ 0 + a + 1z~ 1 + (a + 0)z~ 0 + (a + 1)z~ 1 - (a + 1))#za <+>za + <(>z
b + <(-a)>za:<1>z(a + <1>)*bza + <2>z	a + <1.0>za ** <b>za ** <(1 + 1)>z
a ** <1.5>za + b <# asdf>z<)>za + <)>z<*> aza + <*>za + <foo[bar>za + <foo{bar>za + <foo(bar>z
a + <[bar>z
a + <{bar>za + <{bar[]>za + foo<]>barza + foo[]<]>barza + foo{}<}>barza + foo<)>barza + b<)>z(a) <.>z<(>a + bz<y ~ a> ~ bzy ~ <(a ~ b)>z	<~ a> ~ bz~ <(a ~ b)>z1 + <-(a + b)>z<- a>za + <-a**2>c           
      Z   U(       a  S/U-   n[        U 5      [        U5      :X  d   e[        X5       Hp  u  p4[        U[        5      (       aO  [        U[        5      (       a  U4nUR
                  [        U Vs/ s H  n[        U5      PM     sn5      :X  d   eMi  X4:X  a  Mp   e   g s  snf )Nr%   )r   zipr   r   strr   r   r	   )r   expected_intercept	expectedsr`   expectedss         r   _assert_terms_matchr   r  s    D9$	u:Y'''e/dD!!(C(($;<<5)JA*Q-)J#KKKK### 0 *Ks   9B(c                 B   U R                  5        H  u  p[        U5      S:X  a  S/ 4U-   n[        R                  U5      n[	        [        U5      5        [	        U5        [	        U5        Uu  pEpg[        UR                  XE5        [        UR                  Xg5        M     g )NrN   F)	itemsr   r   rq   ru   reprr   rX   rY   )testscodere   
model_desclhs_interceptrX   rhs_interceptrY   s           r   _do_eval_formula_testsr     s    v;!R[6)F++D1
d4jfjCI@]J33]QJ33]Q &r   c                  "    [        [        5        g r   )r   _eval_testsr%   r   r   test_eval_formular     s
    ;'r   c                  0    SSK Jn   S nU " U[        5        g )Nr   )_parsing_error_testc                 ,    [         R                  U 5      $ r   )r   rq   )formulas    r   <lambda>3test_eval_formula_error_reporting.<locals>.<lambda>  s    y55g>r   )patsy.parse_formular  _eval_error_tests)r  parse_fns     r   !test_eval_formula_error_reportingr	    s    7>H"34r   c                  
   SSK Jn   [        R                  S5      nUR                  S   R
                  S   R                  U " SSS5      :X  d   eUR                  S   R
                  S   R                  U " SSS5      :X  d   eg )Nr   )Originr   rM   rN         )patsy.originr  r   rq   rY   r   r   )r  descs     r   test_formula_factor_originr    s{    #!!'*DQ''*11VGQ5JJJJQ''*11VGQ5JJJJr   N)1patsyr   r  r   r   r   
patsy.evalr   r	   
patsy.utilr
   r   r   r   r   __all__objectr   r   rD   rT   r   rw   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rk   r   r  r   r   r   r	  r  r%   r   r   <module>r     s    ? ? 2 % = 6 -+6 +\ H	& 
!U UpQ"Gv 2,(
77 
;,(L3:VB
5 5txr
x$x T2Jx $	x
 $x %x 
E2;x 
D":x 
D":x 
E2;x dBZx eR[x dBZx eR[x dSE]x  ecU^!x" ecU^#x$ dSE]%x& dBZ'x( dS#J)x* sCj!+x, dS#J'-x. tc3Z(/x0 $c
+1x2 $3x4 D3*%5x6 tc+?%@A7x: 7u;x< t/0=x> TC,-?x@ 
D:,AxB dZL!CxD $Z01ExF $Z01GxH $%IxJ D"?@KxL $%MxN D"?@OxP $QxR $SxT D":UxV bzWxX d*+YxZ $./[x\ DAB]x^ DAB_x` D01axb d$KLcxd D01exf d$KLgxh 
D3
#$ixj $34kxl D"DEmxn $56oxp tcUmqxr 	
sxP 	
Qxv tcUmwxx sCj!yxz d*+{x| %/0}x~ UBKx@ $c
#AxB $D3*-CxD %#sCj1ExF ecUD3*5GxH %!7SzJIxJ ub$#KxL dSE4#s4MxP $34QxR $34SxT $j)*UxV $./WxX $./YxZ d67[x\ d67]x` bzaxb E2;cxd D":exf r{gxh D3%=ixj dSE]kxl dSE]mxn eR[oxv' T
$
R(5Kr   