
    bMhV                        U d dl Z d dlZd dlmZmZ d dlmZ d dlm	Z	mZm
Z
mZ d dlmZmZ d dlmZmZ d dlmZmZmZmZmZmZ d dlmZ d d	lmZmZmZmZm Z m!Z!m"Z"m#Z#mZm$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+ d d
l,m-Z- d dl.m/Z/ d dl0m1Z1 d dl2m3Z3m4Z4m5Z5m6Z6 d dl7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@ d dlAmBZBmCZCmDZD erHd dlEmFZFmGZG d dlHmIZI d dlJmKZK d dlLmMZMmNZNmOZO e+eMeNeOf         ZPeeef         ZQe+eReSef         ZTe+eUeVf         ZWdede+eU         fdZXdede+eU         fdZYdede+eV         fdZZdede+eV         fdZ[h dZ\h dZ]dede^fdZ_dZ`dedeRfdZadedeRfdZbdedeSfd ZcdedeSfd!Zddjd'Zedkd(Zfdkd)Zgdld+Zhdmd-Zidnd.Zjdnd/Zkdnd0Zldedd1fd2Zmdede eef         fd3Zndede$e         fd4Zodede(ed5f         fd6Zpdede'e         fd7Zqdede"e         fd8Zrdedee         fd9Zsded#d$d%d&defd:Ztded#d$de-fd;Zudedefd<Zvdedefd=Zwdedefd>Zxdedefd?Zydedefd@ZzdedefdAZ{dedefdBZ|dedefdCZ}dedefdDZ~dedefdEZdede8fdFZdedefdGZdedefdHZdIedeegef         fdJZdodKZdodLZdodMZdodNZded%d&defdOZ e*dP          ZdIe)e         deegef         fdQZdIe)e         deege)e         f         fdRZdede)e         fdSZdeddTfdUZdede&eU         fdVZ e*dWe%X          ZdYe)e         d%e)d&         dee(ed5f         gef         fdZZd[e)d\         d%e)d&         deege eUef         f         fd]Z G d^ d_          ZeeaetgfeetgfeUeX eejd`           eekda           eeldb           eeidcdd          gfeVeZ eejd`           eekda           eeldb           eeidcdd          gfe^e_gfeReagfeSec eeededfg          gfee~gfee4gfe	e3gfe
e6gfee5gfeemgfeengfeeogfeepgfeeqgfeergfeesgfe-eugfeevgfee|gfee}gfeexgfeeygfeezgfee{gfgZe$e(e)e         e$e         f                  edh<   dIe)e         d%e)d&         de#e8ddf         fdiZdS )p    N)OrderedDictdeque)Hashable)datedatetimetime	timedelta)DecimalDecimalException)EnumIntEnum)IPv4AddressIPv4InterfaceIPv4NetworkIPv6AddressIPv6InterfaceIPv6Network)Path)TYPE_CHECKINGAnyCallableDequeDict
ForwardRef	FrozenSet	Generatorr   List
NamedTuplePatternSetTupleTypeTypeVarUnion)UUID)warn)errors)
parse_dateparse_datetimeparse_duration
parse_time)	AnyCallableall_literal_valuesdisplay_as_type	get_classis_callable_typeis_literal_typeis_namedtupleis_none_typeis_typeddict)almost_equal_floatslenient_issubclasssequence_like)Literal	TypedDict)
BaseConfig)
ModelField)ConstrainedDecimalConstrainedFloatConstrainedIntvreturnc                 P   t          | t                    rt          | t                    r| j        S | S t          | t          t
          t          f          rt          |           S t          | t          t          f          r| 	                                S t          j                    N)
isinstancestrr   valuefloatintr
   bytes	bytearraydecoder'   StrErrorr?   s    V/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pydantic/v1/validators.pystr_validatorrN   <   s    !S  a 	7NH	AsG,	-	-  1vv	Ay)	*	*  xxzzo    c                     t          | t                    rt          | t                    s| S t          j                    rB   )rC   rD   r   r'   rK   rL   s    rM   strict_str_validatorrQ   K   s8    !S *Q"5"5 
/

rO   c                 v   t          | t                    r| S t          | t                    rt          |           S t          | t                    r|                                 S t          | t
          t          t          f          r!t          |                                           S t          j	                    rB   )
rC   rH   rI   rD   encoderF   rG   r
   r'   
BytesErrorrL   s    rM   bytes_validatorrU   Q   s    !U 	"	Ay	!	! "Qxx	As		 "xxzz	AsG,	-	- "1vv}}!!!rO   c                     t          | t                    r| S t          | t                    rt          |           S t          j                    rB   )rC   rH   rI   r'   rT   rL   s    rM   strict_bytes_validatorrW   ^   sE    !U "	Ay	!	! "Qxx!!!rO   >   0fnnoofffalser   >   1tyonyestrue   c                 R   | du s| du r| S t          | t                    r|                                 } t          | t                    r|                                 } 	 | t
          v rdS | t          v rdS n!# t          $ r t          j	                    w xY wt          j	                    NTF)
rC   rH   rJ   rD   lower	BOOL_TRUE
BOOL_FALSE	TypeErrorr'   	BoolErrorrL   s    rM   bool_validatorrl   k   s    DyyAJJ!U HHJJ!S GGII!	>>4
??5  ! ! !   !



s   	A5 )	A5 5Bi  c                 V   t          | t                    r
| du s| du s| S t          | t          t          t          f          r+t          |           t          k    rt          j                    	 t          |           S # t          t          t          f$ r t          j                    w xY wrf   )rC   rG   rD   rH   rI   lenmax_str_intr'   IntegerErrorrj   
ValueErrorOverflowErrorrL   s    rM   int_validatorrs      s    !S 199U

 !c5),-- $#a&&;2F2F!###$1vvz=1 $ $ $!###$s   .A= =+B(c                 f    t          | t                    r
| du s| du s| S t          j                    rf   )rC   rG   r'   rp   rL   s    rM   strict_int_validatorru      s8    !S 199U





rO   c                     t          | t                    r| S 	 t          |           S # t          t          f$ r t	          j                    w xY wrB   )rC   rF   rj   rq   r'   
FloatErrorrL   s    rM   float_validatorrx      sX    !U "Qxxz" " " "!!!"	   ( %Ac                 V    t          | t                    r| S t          j                    rB   )rC   rF   r'   rw   rL   s    rM   strict_float_validatorr{      s(    !U 



rO   Numberfieldr;   configr:   c                     t          |j        dd           }||j        }|du r;t          j        |           st          j        |           rt          j                    | S )Nallow_inf_nanF)getattrtype_r   mathisnanisinfr'   NumberNotFiniteError)r?   r}   r~   r   s       rM   float_finite_validatorr      s\    EK$??M,4:a==DJqMM)+++HrO   c                     |j         }|j        at          |           t          |j                  z  dz  }t          |d          s*t          |d          st	          j        |j                  | S )Nrd   g        g      ?)multiple_of)r   r   rF   r5   r'   NumberNotMultipleError)r?   r}   
field_typemods       rM   number_multiple_validatorr      st    $)KJ)Ahhz5666:"3,, 	T5Hc5R5R 	T/J<RSSSSHrO   c                 t   |j         }|j        %| |j        k    st          j        |j                  |j        %| |j        k    st          j        |j                  |j        %| |j        k     st          j        |j                  |j        %| |j        k    st          j	        |j                  | S Nlimit_value)
r   gtr'   NumberNotGtErrorgeNumberNotGeErrorltNumberNotLtErrorleNumberNotLeError)r?   r}   r   s      rM   number_size_validatorr      s    $)KJ} Z]):):%*-@@@@		"1
+=+=%*-@@@@} Z]):):%*-@@@@} jm););%*-@@@@HrO   r   c                 T    | |j         k    rt          j        | |j         g          | S )zValidate ``const`` fields.

    The value provided for a ``const`` field must be equal to the default value
    of the field. This is to support the keyword of the same name in JSON
    Schema.
    given	permitted)defaultr'   WrongConstantError)r?   r}   s     rM   constant_validatorr      s0     	EM'aEM?KKKKHrO   StrBytesc                     t          |           }|j        }||k     rt          j        |          |j        }|||k    rt          j        |          | S r   )rn   min_anystr_lengthr'   AnyStrMinLengthErrormax_anystr_lengthAnyStrMaxLengthError)r?   r~   v_len
min_length
max_lengths        rM   anystr_length_validatorr      se    FFE)Jz)jAAAA)J%*"4"4)jAAAAHrO   c                 *    |                                  S rB   )striprL   s    rM   anystr_strip_whitespacer          7799rO   c                 *    |                                  S rB   )upperrL   s    rM   anystr_upperr      r   rO   c                 *    |                                  S rB   )rg   rL   s    rM   anystr_lowerr      r   rO   AnyOrderedDictc                     t          | t                    r| S 	 t          |           S # t          t          f$ r t	          j                    w xY wrB   )rC   r   rj   rq   r'   	DictErrorrL   s    rM   ordered_dict_validatorr      sY    ![!! !1~~z" ! ! !   !ry   c                     t          | t                    r| S 	 t          |           S # t          t          f$ r t	          j                    w xY wrB   )rC   dictrj   rq   r'   r   rL   s    rM   dict_validatorr      sX    !T !Awwz" ! ! !   !ry   c                     t          | t                    r| S t          |           rt          |           S t          j                    rB   )rC   listr7   r'   	ListErrorrL   s    rM   list_validatorr     sC    !T !	q		 !Aww   rO   .c                     t          | t                    r| S t          |           rt          |           S t          j                    rB   )rC   tupler7   r'   
TupleErrorrL   s    rM   tuple_validatorr     C    !U "	q		 "Qxx!!!rO   c                     t          | t                    r| S t          |           rt          |           S t          j                    rB   )rC   setr7   r'   SetErrorrL   s    rM   set_validatorr     sB    !S  	q		  1vvorO   c                     t          | t                    r| S t          |           rt          |           S t          j                    rB   )rC   	frozensetr7   r'   FrozenSetErrorrL   s    rM   frozenset_validatorr   !  sD    !Y &	q		 &||#%%%rO   c                     t          | t                    r| S t          |           rt          |           S t          j                    rB   )rC   r   r7   r'   
DequeErrorrL   s    rM   deque_validatorr   *  r   rO   c                     	 |                     |           }n5# t          $ r( t          j        t	          |j                             w xY w|j        r|j        n|S )N)enum_values)r   rq   r'   EnumMemberErrorr   use_enum_valuesrE   )r?   r}   r~   enum_vs       rM   enum_member_validatorr   3  sl    DQ D D D$ek1B1BCCCCD "1=6<<v=s	    2A
c                    	 t          | t                    rt          |           } n_t          | t          t          f          rC	 t          |                                           } n # t          $ r t          |           } Y nw xY wn!# t          $ r t          j                    w xY wt          | t                    st          j                    t          |j
        dd           }|r | j        |k    rt          j        |          | S )N)rH   _required_version)required_version)rC   rD   r%   rH   rI   rJ   rq   r'   	UUIDErrorr   r   versionUUIDVersionError)r?   r}   r   s      rM   uuid_validatorr   <  s   !a 	"QAAE9-.. 	""$$ " " " qMMM"  ! ! !   ! a !   u{,?FF IAI)999%7GHHHHHs0   AB !A& %B &B B BB B%c                    t          | t                    r| S t          | t          t          f          r|                                 } t          |                                           } 	 t          |           } n!# t          $ r t          j	                    w xY w| 
                                st          j                    | S rB   )rC   r
   rH   rI   rJ   rD   r   r   r'   DecimalError	is_finiteDecimalIsNotFiniteErrorrL   s    rM   decimal_validatorr   T  s    !W 	Ay)	*	* HHJJAA$AJJ $ $ $!###$ ;;== /,...Hs   *A: :Bc                 V    t          | t                    r| S t          j                    rB   )rC   r   r'   HashableErrorrL   s    rM   hashable_validatorr   g  s(    !X 


 
  rO   c                     t          | t                    r| S 	 t          |           S # t          $ r t          j                    w xY wrB   )rC   r   rq   r'   IPv4AddressErrorrL   s    rM   ip_v4_address_validatorr   n  T    ![!! (1~~ ( ( (%'''(	   ( Ac                     t          | t                    r| S 	 t          |           S # t          $ r t          j                    w xY wrB   )rC   r   rq   r'   IPv6AddressErrorrL   s    rM   ip_v6_address_validatorr   x  r   r   c                     t          | t                    r| S 	 t          |           S # t          $ r t          j                    w xY w)z
    Assume IPv4Network initialised with a default ``strict`` argument

    See more:
    https://docs.python.org/library/ipaddress.html#ipaddress.IPv4Network
    )rC   r   rq   r'   IPv4NetworkErrorrL   s    rM   ip_v4_network_validatorr     V     ![!! (1~~ ( ( (%'''(r   c                     t          | t                    r| S 	 t          |           S # t          $ r t          j                    w xY w)z
    Assume IPv6Network initialised with a default ``strict`` argument

    See more:
    https://docs.python.org/library/ipaddress.html#ipaddress.IPv6Network
    )rC   r   rq   r'   IPv6NetworkErrorrL   s    rM   ip_v6_network_validatorr     r   r   c                     t          | t                    r| S 	 t          |           S # t          $ r t          j                    w xY wrB   )rC   r   rq   r'   IPv4InterfaceErrorrL   s    rM   ip_v4_interface_validatorr     V    !]## *Q * * *')))*r   c                     t          | t                    r| S 	 t          |           S # t          $ r t          j                    w xY wrB   )rC   r   rq   r'   IPv6InterfaceErrorrL   s    rM   ip_v6_interface_validatorr     r   r   c                     t          | t                    r| S 	 t          |           S # t          $ r t          j                    w xY wrB   )rC   r   rj   r'   	PathErrorrL   s    rM   path_validatorr     sS    !T !Aww ! ! !   !r   c                 X    |                                  st          j        |           | S )N)path)existsr'   PathNotExistsErrorrL   s    rM   path_exists_validatorr    s+    88:: 0'Q////HrO   c                 N    t          |           r| S t          j        |           )z
    Perform a simple check if the value is callable.

    Note: complete matching of argument type hints and return types is not performed
    rE   )callabler'   CallableErrorrL   s    rM   callable_validatorr    s+     {{ 

Q
'
'
''rO   c                 Z    t          | t                    r| S t          j        |           Nr  )rC   r   r'   	EnumErrorrL   s    rM   enum_validatorr    s-    !T 


#
#
##rO   c                 Z    t          | t                    r| S t          j        |           r	  )rC   r   r'   IntEnumErrorrL   s    rM   int_enum_validatorr    s-    !W 

A
&
&
&&rO   r   c                 j    t          |           d D             dt          dt          ffd}|S )Nc                     i | ]}||S  r  ).0r?   s     rM   
<dictcomp>z*make_literal_validator.<locals>.<dictcomp>  s    777q!777rO   r?   r@   c                 l    	 |          S # t           t          f$ r t          j        |           w xY w)Nr   )KeyErrorrj   r'   r   )r?   allowed_choicespermitted_choicess    rM   literal_validatorz1make_literal_validator.<locals>.literal_validator  sO    	R"1%%)$ 	R 	R 	R+!?PQQQQ	Rs    (3)r-   r   )r   r  r  r  s     @@rM   make_literal_validatorr    sj    *511
 87%6777ORS RS R R R R R R R rO   c                    t          |           }|j        j        |j        j        n|j        }||k     rt	          j        |          |j        j        |j        j        n|j        }|||k    rt	          j        |          | S r   )	rn   r   r   r   r'   r   r   r   r   )r?   r}   r~   r   r   r   s         rM   constr_length_validatorr    s    FFE+0;+A+M''SYSkJz)jAAAA+0;+A+M''SYSkJ%*"4"4)jAAAAHrO   c                 X    |j         j        p|j        }|r|                                 } | S rB   )r   strip_whitespacer   r   )r?   r}   r~   r  s       rM   constr_strip_whitespacer     s/    {3Uv7U GGIIHrO   c                 X    |j         j        p|j        }|r|                                 } | S rB   )r   to_upperr   r   )r?   r}   r~   r   s       rM   constr_upperr!    s.    K 7F$7E GGIIHrO   c                 X    |j         j        p|j        }|r|                                 } | S rB   )r   to_lowerr   rg   )r?   r}   r~   rg   s       rM   constr_lowerr$    s.    K 7F$7E GGIIHrO   c                     | | S 	 |                     |           S # t          $ r t          j                    t          $ r t          j                    w xY wrB   )
json_loadsrq   r'   	JsonErrorrj   JsonTypeError)r?   r~   s     rM   validate_jsonr)    sp    y%  ### ! ! !    % % %"$$$%s	    :ATc                 0     dt           dt          f fd}|S )Nr?   r@   c                 R    t          |           r| S t          j                  )N)expected_arbitrary_type)rC   r'   ArbitraryTypeErrorr?   r   s    rM   arbitrary_type_validatorz?make_arbitrary_type_validator.<locals>.arbitrary_type_validator'  s.    a 	H'FFFFrO   )r   r*  )r   r0  s   ` rM   make_arbitrary_type_validatorr1  &  s?    GC GA G G G G G G
 $#rO   c                 F     dt           dt          t                   f fd}|S )Nr?   r@   c                 R    t          |           r| S t          j                  )N)expected_class)r6   r'   SubclassErrorr/  s    rM   class_validatorz-make_class_validator.<locals>.class_validator0  s.    a'' 	H"%8888rO   )r   r"   r*  )r   r6  s   ` rM   make_class_validatorr7  /  s;    93 947 9 9 9 9 9 9
 rO   c                 V    t          | t                    r| S t          j                    rB   )rC   typer'   
ClassErrorrL   s    rM   any_class_validatorr;  8  s(    !T 



rO   zLiteral[None]c                 0    | | S t          j                    rB   )r'   NotNoneErrorrL   s    rM   none_validatorr>  >  s    y



rO   c                     t          | t                    r| S t          |           }	 t          j        |          S # t          j        $ r t          j                    w xY wrB   )rC   r   rN   recompileerrorr'   PatternError)r?   	str_values     rM   pattern_validatorrE  D  sg    !W a  I$z)$$$8 $ $ $!###$s	   < #ANamedTupleT)boundnamedtuple_clsc                      ddl m}  | | j                   _        dt          t
          df         dt          f fd}|S )Nr   )create_model_from_namedtuple
__config__
__module__values.r@   c                 
   j         }t          |           t          |          k    r"t          j        t          |                    t	          t          ||                     }t	           di |          } di |S )Nr   r  )__annotations__rn   r'   ListMaxLengthErrorr   zip)rN  annotationsdict_valuesvalidated_dict_valuesNamedTupleModelrH  s       rM   namedtuple_validatorz7make_namedtuple_validator.<locals>.namedtuple_validator_  s    %5v;;[))))+K8H8HIIII&*3{F+C+C&D&D04__5S5S{5S5S0T0T~66 5666rO   )pydantic.v1.annotated_typesrJ  rM  __pydantic_model__r!   r   rF  )rH  r~   rJ  rW  rV  s   `   @rM   make_namedtuple_validatorrZ  S  s     IHHHHH22!,  O
 )8N%7U38_ 7 7 7 7 7 7 7 7  rO   typeddict_clsr9   c                     ddl m}  || || j                  | _        dddt          t
          t          f         ffd}|S )Nr   )create_model_from_typeddictrK  rN  r9   r@   c                 V                         |                               d          S )NT)exclude_unset)	parse_objr   )rN  TypedDictModels    rM   typeddict_validatorz5make_typeddict_validator.<locals>.typeddict_validatorx  s(    ''//4444HHHrO   )rX  r]  rM  rY  r   rD   r   )r[  r~   r]  rb  ra  s       @rM   make_typeddict_validatorrc  l  s     HGGGGG00 +  N
 (6M$IK IDcN I I I I I I rO   c            	       H    e Zd ZdddedededdfdZd	ed
         defdZ	dS )IfConfigFignored_value	validatorconfig_attr_namesrg  r@   Nc                0    || _         || _        || _        d S rB   )rh  ri  rg  )selfrh  rg  ri  s       rM   __init__zIfConfig.__init__  s    "!2*rO   r~   r:   c                 H     t           fd j        D                       S )Nc              3   J   K   | ]}t          |          d j        hvV  d S rB   )r   rg  )r  namer~   rk  s     rM   	<genexpr>z!IfConfig.check.<locals>.<genexpr>  s:      nnt764((t7I0JJnnnnnnrO   )anyri  )rk  r~   s   ``rM   checkzIfConfig.check  s.    nnnnnW[WmnnnnnnrO   )
__name__rM  __qualname__r,   rD   r   rl  r"   boolrr  r  rO   rM   re  re  ~  s        ]b + + ++ +3 +WZ +gk + + + +
oD. o4 o o o o o orO   re  r   r   r   r   r   r   Trf  _VALIDATORSc           
   #   >  K   ddl m}m} | t          u s	| t          u rd S | j        }|t          k    s|t          k    rd S t          |           rt          V  d S | t          u s| t          j
        u rt          V  d S | t          u s	| t          u rt          V  d S t!          |           rt"          V  d S t%          |           rt'          |           V  d S  ||           r || |          E d {V  d S | t(          u rt*          V  d S | t,          u rt.          V  d S t1          |           rt2          V  t5          | |          V  d S t7          |           rt9          | |          V  d S t;          |           }|;|t          ur't=          |t>                    rtA          |          V  n	tB          V  d S tD          D ]\  }}	 tG          | |          r@|D ]:}t=          |tH                    r|%                    |          r	|j&        V  6|V  ; d S W# tN          $ r$ tQ          d| dtS          |            d          w xY w|j*        rtW          |           V  d S tY          | d          rt[          d| j.         dt^                     tQ          d	|  d
          )Nr   )is_builtin_dataclassmake_dataclass_validatorzerror checking inheritance of z (type: )__pydantic_core_schema__z+Mixing V1 and V2 models is not supported. `z` is a V2 model.zno validator found for z), see `arbitrary_types_allowed` in Config)0pydantic.v1.dataclassesrx  ry  r   object	__class__r   r#   r3   r>  r   r@  rE  r   CollectionsHashabler   r0   r  r1   r  r   r  r   r  r2   r   rZ  r4   rc  r/   rC   r9  r7  r;  rv  
issubclassre  rr  rh  rj   RuntimeErrorr.   arbitrary_types_allowedr1  hasattrr&   rs  UserWarning)	r   r~   rx  ry  	type_typeclass_val_type
validatorsr?   s	            rM   find_validatorsr    s      WVVVVVVV||uIJ)w"6"6E 5BJ..E%888         u $U+++++E"" ++E6:::::::::}}    U 'v66666E &uf55555uFFD!9!9&v......%%%% + l l*
	l%** #    A!!X..  776?? ."#+---  	l 	l 	ljjjQ`afQgQgjjjkkk	l % g+E22222225455 	n_u~___almmmeUeeefffs   AH.I)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@  collectionsr   r   collections.abcr   r  r   r   r   r	   decimalr
   r   enumr   r   	ipaddressr   r   r   r   r   r   pathlibr   typingr   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   uuidr%   warningsr&   pydantic.v1r'   pydantic.v1.datetime_parser(   r)   r*   r+   pydantic.v1.typingr,   r-   r.   r/   r0   r1   r2   r3   r4   pydantic.v1.utilsr5   r6   r7   typing_extensionsr8   r9   pydantic.v1.configr:   pydantic.v1.fieldsr;   pydantic.v1.typesr<   r=   r>   ConstrainedNumberr   rG   rF   r|   rD   rH   r   rN   rQ   rU   rW   ri   rh   ru  rl   ro   rs   ru   rx   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*  r1  r7  r;  r>  rE  rF  rZ  rc  re  r   r   r   r   r   rv  rP  r  r  rO   rM   <module>r     s    				 * * * * * * * * ; ; ; ; ; ; 4 4 4 4 4 4 4 4 4 4 4 4 - - - - - - - -         f f f f f f f f f f f f f f f f                                           &                   ] ] ] ] ] ] ] ] ] ] ] ]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 U T T T T T T T T T 
!44444444------------VVVVVVVVVV02BNRS c*N3w&'FS%Z H S  U3Z        C E#J    
"s 
"uU| 
" 
" 
" 
""c "eEl " " " " 655
333	c d    $ $S $S $ $ $ $& C  C        "s "u " " " "c e             
 
 
 
            !c !&6 ! ! ! !!c !d38n ! ! ! !!c !d3i ! ! ! !"s "uS#X " " " " S  SX        &3 &9S> & & & &"s "uSz " " " ">S > >| >PT > > > >c , 4    0     &!# !( ! ! ! !(s ({ ( ( ( ((s ({ ( ( ( ((s ({ ( ( ( ( (s ({ ( ( ( ( * * * * * ** * * * * *!c !d ! ! ! !S T    	(# 	(+ 	( 	( 	( 	($c $d $ $ $ $'# '' ' ' ' '# (C5#:*>    "            	%S 	%, 	%3 	% 	% 	% 	% GCLL$a $Xqc1f5E $ $ $ $Q HcUDG^,D    3 47     c  o        	$ 	$ 	$ 	$ 	$ 	$ gm:666 % /3L/A uS#X,-       2$.2<.@seT#s(^#$   $o o o o o o o o }345	!"#H,.GHHH\>22H\>22H,.ACVWW	
	 	H,.GHHH\>22H\>22H,.ACVWW	
	 
N=/
_hh'=^bcccde	N 	J<	J< !)*+	N	N
_=/$%&
_	N !"./0./0*+,*+,*+,*+,[.2T%S	49,-. . . .bEg9Eg"<0Eg{D$&'Eg Eg Eg Eg Eg EgrO   