
    "
3jj                        S r SSKJr  SSKJr  SSKrSSKrSSK	J
r
Jr  SSKJr  SSKJrJrJr  SSKJr  \" S	S
5      r\
R*                  rSrSrSrSr " S S\5      rS r\S 5       r\" \5      S 5       r\S 5       r\S 5       r \S 5       r!\S 5       r"\S 5       r#\S 5       r$\S 5       r%\S 5       r&\S 5       r'\S 5       r(\S 5       r)\S 5       r*\S  5       r+\S! 5       r,\S" 5       r-\S# 5       r.\S$ 5       r/\S% 5       r0\S& 5       r1\S' 5       r2\S( 5       r3\S) 5       r4\S* 5       r5\S+ 5       r6 " S, S-\5      r7\Rp                  " / SPSPSPSPSPSPSPSPSP\7Rr                  P\7Rr                  P\7Rr                  P\7Rr                  P\7Rr                  PSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSP\7Rr                  PSPSPSPSPSPSPSPSPSPSPSPSPSPSPSP\7Rt                  \7Rv                  -  P\7Rt                  \7Rv                  -  P\7Rt                  \7Rv                  -  P\7Rt                  \7Rv                  -  P\7Rt                  \7Rv                  -  P\7Rt                  \7Rv                  -  P\7Rt                  \7Rv                  -  P\7Rt                  \7Rv                  -  P\7Rt                  \7Rv                  -  P\7Rt                  \7Rv                  -  PSPSPSPSPSPSPSP\7Rx                  \7Rv                  -  P\7Rx                  \7Rv                  -  P\7Rx                  \7Rv                  -  P\7Rx                  \7Rv                  -  P\7Rx                  \7Rv                  -  P\7Rx                  \7Rv                  -  P\7Rx                  P\7Rx                  P\7Rx                  P\7Rx                  P\7Rx                  P\7Rx                  P\7Rx                  P\7Rx                  P\7Rx                  P\7Rx                  P\7Rx                  P\7Rx                  P\7Rx                  P\7Rx                  P\7Rx                  P\7Rx                  P\7Rx                  P\7Rx                  P\7Rx                  P\7Rx                  PSPSPSPSPSPSP\7Rz                  \7Rv                  -  P\7Rz                  \7Rv                  -  P\7Rz                  \7Rv                  -  P\7Rz                  \7Rv                  -  P\7Rz                  \7Rv                  -  P\7Rz                  \7Rv                  -  P\7Rz                  P\7Rz                  P\7Rz                  P\7Rz                  P\7Rz                  P\7Rz                  P\7Rz                  P\7Rz                  P\7Rz                  P\7Rz                  P\7Rz                  P\7Rz                  P\7Rz                  P\7Rz                  P\7Rz                  P\7Rz                  P\7Rz                  P\7Rz                  P\7Rz                  P\7Rz                  PSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSP\R|                  S.9r?\Rp                  " / S/Q\R                  S.9rA\Rp                  " / S0Q\R                  S.9rB " S1 S2\5      rC\Rp                  " / SPSPSPSPSPSPSPSPSPSP\CR                  \CR                  -  P\CR                  P\CR                  P\CR                  \CR                  -  PSPSPSPSPSPSPSPSPSPSPSPSPSPSP\CR                  P\CR                  P\CR                  PSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSP\CR                  PSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSP\R|                  S.9rG\S3 5       rH\S4 5       rI\S5 5       rJ\S6 5       rK\S7 5       rL\S8 5       rM\S9 5       rN\S: 5       rO\S; 5       rP\S< 5       rQ\S= 5       rR\S> 5       rS\S? 5       rTg)@z
This module contains support functions for more advanced unicode operations.
This is not a public API and is for Numba internal use only. Most of the
functions are relatively straightforward translations of the functions with the
same name in CPython.
    )
namedtuple)IntEnumN)typescgutils)impl_ret_untracked)overload	intrinsicregister_jitable)TypingError
typerecordz%upper lower title decimal digit flags	   
          c                   P    \ 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rSrg)_PyUnicode_TyperecordMasks;                  r   @         i   i   i   i   i    i @   N)__name__
__module____qualname____firstlineno__
ALPHA_MASKDECIMAL_MASK
DIGIT_MASK
LOWER_MASKLINEBREAK_MASK
SPACE_MASK
TITLE_MASK
UPPER_MASKXID_START_MASKXID_CONTINUE_MASKPRINTABLE_MASKNUMERIC_MASKCASE_IGNORABLE_MASK
CASED_MASKEXTENDED_CASE_MASK__static_attributes__r       W/home/wildlama/miniconda3/lib/python3.13/site-packages/numba/cpython/unicode_support.pyr   r   ;   sP    JLJJNJJJNNL Jr1   r   c                     [        S5      e)Nz(Calling the Python definition is invalid)RuntimeErroras    r2   _PyUnicode_gettyperecordr7   M   s    
A
BBr1   c                 d   [        U[        R                  5      (       d  [        S5      eS n[        R                  " [        R
                  [        R
                  [        R
                  [        R                  [        R                  [        R                  /[        5      nU" [        5      nXB4$ )zr
Provides the binding to numba_gettyperecord, returns a `typerecord`
namedtuple of properties from the codepoint.
zcodepoint must be an integerc           
         U R                  [        R                  5      nU R                  [        5      nU R                  [        R                  5      nUR                  5       nU R                  [        R                  5      nUR                  5       n	U R                  [        R                  5      n
U
R                  5       n[        R                  R                  UUUUUU	U	U/5      n[        R                  " UR                  USS9n[        R                  " XSS9n[        R                  " XSS9n[        R                  " XSS9n[        R                  " XSS9n[        R                  " XSS9n[        R                  " XSS9nXUUUU/nUR                  XS	   /U-   5        / nU H#  nUR!                  UR#                  U5      5        M%     U R%                  XR&                  [)        U5      5      n[+        XUR&                  U5      $ )
Nnumba_gettyperecordnameupperlowertitledecimaldigitflagsr   )get_value_typer   void_Py_UCS4intc
as_pointerucharushortllvmliteirFunctionTyper   get_or_insert_functionmodulealloca_oncecallappendload
make_tuplereturn_typetupler   )contextbuilder	signatureargsll_void
ll_Py_UCS4ll_intcll_intc_ptrll_ucharll_uchar_ptr	ll_ushortll_ushort_ptrfntyfnr=   r>   r?   r@   rA   rB   byrefbufxress                           r2   details$_gettyperecord_impl.<locals>.detailsZ   s   ((4++H5
((4((*))%++6**,**5<<8	!,,.{{''2
  ++NN,. ##G7C##G7C##G7C%%giH##GGD##GWEwu=Rq'U*+AJJw||A'    *?*?sL!'I4I4I3OOr1   )

isinstancer   Integerr   
NamedTuplerF   rH   rI   r   rE   )	typingctx	codepointrh   tuptysigs        r2   _gettyperecord_implrq   Q   sy     i//899#PJ ejj%**ejj%++#kk5<<9:DFE
/C<r1   c                    ^ [        U [        R                  5      (       a  SSKJm  U4S jnU$ [        U [        R
                  5      (       a  S $ g)zw
Provides a _PyUnicode_gettyperecord binding, for convenience it will accept
single character strings and code points.
r   )_get_code_pointc                 z   > [        U 5      S:  a  Sn[        U5      eT" U S5      n[        [        U5      5      nU$ )Nr   z.gettyperecord takes a single unicode characterr   )len
ValueErrorrq   rE   )r6   msg
code_pointdatars   s       r2   impl gettyperecord_impl.<locals>.impl   s=    1vzF o%(A.J&x
';<DKr1   c                 *    [        [        U 5      5      $ N)rq   rE   r5   s    r2   <lambda>$gettyperecord_impl.<locals>.<lambda>   s    ,Xa[9r1   N)rj   r   UnicodeTypenumba.cpython.unicoders   rk   )r6   rz   rs   s     @r2   gettyperecord_implr      sC     !U&&''9	 !U]]##99 $r1   c                     [        U[        R                  5      (       d  [        S5      eS n[	        [        R
                  5      nX24$ )z
Accessor function for the _PyUnicode_ExtendedCase array, binds to
numba_get_PyUnicode_ExtendedCase which wraps the array and does the lookup
zExpected an indexc                    U R                  [        5      nU R                  [        R                  5      n[        R
                  R                  XE/5      n[        R                  " UR                  USS9nUR                  XsS   /5      $ )N numba_get_PyUnicode_ExtendedCaser;   r   )rC   rE   r   rF   rJ   rK   rL   r   rM   rN   rP   )rV   rW   rX   rY   r[   r\   rb   rc   s           r2   rh   (_PyUnicode_ExtendedCase.<locals>.details   sp    ++H5
((4{{''
I>++NN9; ||Ba	**r1   )rj   r   rk   r   rE   rF   )rm   indexrh   rp   s       r2   _PyUnicode_ExtendedCaser      s>     eU]]++-..+ 5::
C<r1   c                     [        U 5      nUR                  [        R                  -  (       a  [	        UR
                  S-  5      $ XR
                  -   $ )N  )r7   rB   r   r/   r   r?   chctypes     r2   _PyUnicode_ToTitlecaser      s@    $R(E0CCC&u{{V';<<r1   c                 X    [        U 5      nUR                  [        R                  -  S:g  $ Nr   )r7   rB   r   r'   r   s     r2   _PyUnicode_IsTitlecaser      '    $R(E;;3>>>!CCr1   c                 X    [        U 5      nUR                  [        R                  -  S:g  $ r   )r7   rB   r   r)   r   s     r2   _PyUnicode_IsXidStartr      '    $R(E;;3BBBaGGr1   c                 X    [        U 5      nUR                  [        R                  -  S:g  $ r   )r7   rB   r   r*   r   s     r2   _PyUnicode_IsXidContinuer      s'    $R(E;;3EEEJJr1   c                 v    [        U 5      nUR                  [        R                  -  (       a  UR                  $ gN)r7   rB   r   r"   r@   r   s     r2   _PyUnicode_ToDecimalDigitr      s,    $R(E{{/<<<}}r1   c                 v    [        U 5      nUR                  [        R                  -  (       a  UR                  $ gr   )r7   rB   r   r#   rA   r   s     r2   _PyUnicode_ToDigitr      s,    $R(E{{/:::{{r1   c                 X    [        U 5      nUR                  [        R                  -  S:g  $ r   )r7   rB   r   r,   r   s     r2   _PyUnicode_IsNumericr      s'    $R(E;;3@@@AEEr1   c                 X    [        U 5      nUR                  [        R                  -  S:g  $ r   )r7   rB   r   r+   r   s     r2   _PyUnicode_IsPrintabler      r   r1   c                 X    [        U 5      nUR                  [        R                  -  S:g  $ r   )r7   rB   r   r$   r   s     r2   _PyUnicode_IsLowercaser      r   r1   c                 X    [        U 5      nUR                  [        R                  -  S:g  $ r   )r7   rB   r   r(   r   s     r2   _PyUnicode_IsUppercaser      r   r1   c                 X    [        U 5      nUR                  [        R                  -  S:g  $ r   )r7   rB   r   r%   r   s     r2   _PyUnicode_IsLineBreakr      r   r1   c                     [         er}   NotImplementedErrorr   s    r2   _PyUnicode_ToUppercaser         
r1   c                     [         er}   r   r   s    r2   _PyUnicode_ToLowercaser     r   r1   c                    [        U 5      nUR                  [        R                  -  (       aA  UR                  S-  nUR                  S-	  n[        U5       H  n[        X5-   5      X'   M     U$ XR                  -   US'   gNr      r   r   )r7   rB   r   r/   r>   ranger   r   rg   r   r   nis         r2   _PyUnicode_ToLowerFullr     o    $R(E0CCCf$KK2qA,UY7CF ++CFr1   c                    [        U 5      nUR                  [        R                  -  (       aA  UR                  S-  nUR                  S-	  n[        U5       H  n[        X5-   5      X'   M     U$ XR                  -   US'   gr   )r7   rB   r   r/   r?   r   r   r   s         r2   _PyUnicode_ToTitleFullr     r   r1   c                    [        U 5      nUR                  [        R                  -  (       aA  UR                  S-  nUR                  S-	  n[        U5       H  n[        X5-   5      X'   M     U$ XR                  -   US'   gr   )r7   rB   r   r/   r=   r   r   r   s         r2   _PyUnicode_ToUpperFullr   -  sq    $R(E0CCCf$KK2qA,UY7CF  ++CFr1   c                 L   [        U 5      n[        R                  nUR                  U-  (       ak  UR                  S-	  S-  (       aT  UR                  S-  UR                  S-	  -   nUR                  S-	  S-  n[        U5       H  n[        XF-   5      X'   M     U$ [        X5      $ )N      r   r   )r7   r   r/   rB   r>   r   r   r   )r   rg   r   extended_case_maskr   r   r   s          r2   _PyUnicode_ToFoldedFullr   <  s    $R(E3FF{{''U[[B->!,Cv%%++*;<[[B!#qA,UY7CF !"**r1   c                 X    [        U 5      nUR                  [        R                  -  S:g  $ r   )r7   rB   r   r.   r   s     r2   _PyUnicode_IsCasedr   J  r   r1   c                 X    [        U 5      nUR                  [        R                  -  S:g  $ r   )r7   rB   r   r-   r   s     r2   _PyUnicode_IsCaseIgnorabler   Q  s'    $R(E;;3GGG1LLr1   c                 $    [        U 5      S:  a  ggNr   r   )r   r   s    r2   _PyUnicode_IsDigitr   X  s    "!r1   c                 $    [        U 5      S:  a  ggr   )r   r   s    r2   _PyUnicode_IsDecimalDigitr   `  s     $q(r1   c                 X    [        U 5      nUR                  [        R                  -  S:g  $ r   )r7   rB   r   r&   r   s     r2   _PyUnicode_IsSpacer   h  r   r1   c                 X    [        U 5      nUR                  [        R                  -  S:g  $ r   )r7   rB   r   r!   r   s     r2   _PyUnicode_IsAlphar   n  r   r1   c                   0    \ rS rSrSrSrSrSrSrSr	Sr
S	rg
)_PY_CTFi}  r   r      r   r   r   r   r   N)r   r   r   r    LOWERUPPERALPHADIGITALNUMSPACEXDIGITr0   r   r1   r2   r   r   }  s%    EEEEEEFr1   r   )dtype(   r   r   r   r   r         r   r   r   r         r         r            r            r                        r   !   "   #   $   %   &   '   (   )   *   +   ,   -   .   /   0   1   2   3   4   5   6   7   8   9   :   r   <   =   >   ?   r   a   b   c   d   e   f   g   h   i   j   k   l   m   n   o   p   q   r   s   t   u   v   w   x   y   z   [   \   ]   ^   _   `   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  {   |   }   ~      r                                                                                                                                                                                                                                                                                                                                                                                                (   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r   r  r  r	  r
  r   A   B   C   D   E   F   G   H   I   J   K   L   M   N   O   P   Q   R   S   T   U   V   W   X   Y   Z   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   r0  r1  r2  r3  r4  r5  r6  r7  r8  r9  r:  r;  r<  r=  r>  r?  r@  rA  rB  rC  rD  rE  rF  rG  rH  rI  rJ  rK  rL  rM  rN  rO  rP  rQ  rR  rS  rT  rU  rV  rW  rX  rY  rZ  r[  r\  r]  r^  r_  r`  ra  rb  rc  rd  re  rf  rg  rh  ri  rj  rk  rl  rm  rn  ro  rp  rq  rr  rs  rt  ru  rv  rw  rx  ry  rz  r{  r|  r}  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  c                        \ rS rSrSrSrSrSrg)
_PY_CTF_LBia  r   r   r   r   N)r   r   r   r    
LINE_BREAK	LINE_FEEDCARRIAGE_RETURNr0   r   r1   r2   r  r  a  s    JIOr1   r  c                 \    [         R                  " U 5      [         R                  " S5      -  $ )z_
Equivalent to the CPython macro `Py_CHARMASK()`, masks off all but the
lowest 256 bits of ch.
r  )r   uint8r   s    r2   _Py_CHARMASKr    s      ;;r?U[[...r1   c                 &    [         [        U 5         $ )zk
Equivalent to the CPython macro `Py_TOUPPER()` converts an ASCII range
code point to the upper equivalent
)_Py_ctype_toupperr  r   s    r2   _Py_TOUPPERr         \"-..r1   c                 &    [         [        U 5         $ )zk
Equivalent to the CPython macro `Py_TOLOWER()` converts an ASCII range
code point to the lower equivalent
)_Py_ctype_tolowerr  r   s    r2   _Py_TOLOWERr    r  r1   c                 H    [         [        U 5         [        R                  -  $ )z0
Equivalent to the CPython macro `Py_ISLOWER()`
)_Py_ctype_tabler  r   r   r   s    r2   _Py_ISLOWERr        
 <+,w}}<<r1   c                 H    [         [        U 5         [        R                  -  $ )z0
Equivalent to the CPython macro `Py_ISUPPER()`
)r  r  r   r   r   s    r2   _Py_ISUPPERr    r  r1   c                 H    [         [        U 5         [        R                  -  $ )z0
Equivalent to the CPython macro `Py_ISALPHA()`
)r  r  r   r   r   s    r2   _Py_ISALPHAr    r  r1   c                 H    [         [        U 5         [        R                  -  $ )z0
Equivalent to the CPython macro `Py_ISDIGIT()`
)r  r  r   r   r   s    r2   _Py_ISDIGITr    r  r1   c                 H    [         [        U 5         [        R                  -  $ )z1
Equivalent to the CPython macro `Py_ISXDIGIT()`
)r  r  r   r   r   s    r2   _Py_ISXDIGITr    s    
 <+,w~~==r1   c                 H    [         [        U 5         [        R                  -  $ )z0
Equivalent to the CPython macro `Py_ISALNUM()`
)r  r  r   r   r   s    r2   _Py_ISALNUMr    r  r1   c                 H    [         [        U 5         [        R                  -  $ )z0
Equivalent to the CPython macro `Py_ISSPACE()`
)r  r  r   r   r   s    r2   _Py_ISSPACEr    r  r1   c                 H    [         [        U 5         [        R                  -  $ )z&Check if character is ASCII line break)_Py_ctype_islinebreakr  r  r  r   s    r2   _Py_ISLINEBREAKr    s     !b!12Z5J5JJJr1   c                 H    [         [        U 5         [        R                  -  $ )z#Check if character is line feed `
`)r  r  r  r  r   s    r2   _Py_ISLINEFEEDr    s     !b!12Z5I5IIIr1   c                 H    [         [        U 5         [        R                  -  $ )z)Check if character is carriage return ``)r  r  r  r  r   s    r2   _Py_ISCARRIAGERETURNr    s     !b!12Z5O5OOOr1   )U__doc__collectionsr   enumr   llvmlite.irrJ   numpynp
numba.corer   r   numba.core.imputilsr   numba.core.extendingr   r	   r
   numba.core.errorsr   r   uint32rE   _Py_TAB_Py_LINEFEED_Py_CARRIAGE_RETURN	_Py_SPACEr   r7   rq   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   arrayr   r   r   r   r   rF   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r1   r2   <module>r     s    #    % 4 F F ) ?A

 <<6  	   $C 0 0f 

"#: $:,  2   D D H H K K
     F F H H D D D D
 H H
    
 	 	 	 	 
 
 	+ 	+ D D M M     D D
 D Dg  (( III I 	I
 I I I I I MMI MMI MMI MMI MMI I  !I" #I$ %I& 'I( )I* +I, -I. /I0 1I2 3I4 5I6 7I8 9I: ;I< =I> ?I@ AIB MMCID EIF GIH IIJ KIL MIN OIP QIR SIT UIV WIX YIZ [I\ ]I^ _I` aIb MMGNN"cId MMGNN"eIf MMGNN"gIh MMGNN"iIj MMGNN"kIl MMGNN"mIn MMGNN"oIp MMGNN"qIr MMGNN"sIt MMGNN"uIv wIx yIz {I| }I~ I@ AIB CID MMGNN"EIF MMGNN"GIH MMGNN"IIJ MMGNN"KIL MMGNN"MIN MMGNN"OIP MMQIR MMSIT MMUIV MMWIX MMYIZ MM[I\ MM]I^ MM_I` MMaIb MMcId MMeIf MMgIh MMiIj MMkIl MMmIn MMoIp MMqIr MMsIt MMuIv MMwIx yIz {I| }I~ I@ AIB CID MMGNN"EIF MMGNN"GIH MMGNN"IIJ MMGNN"KIL MMGNN"MIN MMGNN"OIP MMQIR MMSIT MMUIV MMWIX MMYIZ MM[I\ MM]I^ MM_I` MMaIb MMcId MMeIf MMgIh MMiIj MMkIl MMmIn MMoIp MMqIr MMsIt MMuIv MMwIx yIz {I| }I~ I@ AIB CIB 	CIB CIB CIB CIB CIB CIB CIB CIB  !CIB #$CIB &'CIB )*CIB ,-CIB /0CIB 23CID EID 	EID EID EID EID EID EID EID EID  !EID #$EID &'EID )*EID ,-EID /0EID 23EIF GIF 	GIF GIF GIF GIF GIF GIF GIF GIF  !GIF #$GIF &'GIF )*GIF ,-GIF /0GIF 23GIH IIH 	IIH IIH IIH IIH IIH IIH IIH IIH  !IIH #$IIH &'IIH )*IIH ,-IIH /0IIH 23IIJ KIJ 	KIJ KIJ KIJ KIJ KIJ KIJ KIJ KIJ  !KIJ #$KIJ &'KIJ )*KIJ ,-KIJ /0KIJ 23KIL MIL 	MIL MIL MIL MIL MIL MIL MIL MIL  !MIL #$MIL &'MIL )*MIL ,-MIL /0MIL 23MIN OIN 	OIN OIN OIN OIN OIN OIN OIN OIN  !OIN #$OIN &'OIN )*OIN ,-OIN /0OIN 23OIP QIP 	QIP QIP QIP QIP QIP QIP QIP QIP  !QIP #$QIP &'QIP )*QIP ,-QIP /0QIP 23QIR 
SI\ HH !B 
C! L HH !B 
C! H   """
""""""" "J000" " 	"
 J666" " 	" " " " " " " "  !" #$" &'" )*" ,-" " " " " 	" " " " " " " "  !" #$" &'" )*" ,-" /0" 23" 56" " 	" " " " " " " "  !" #$" &'" )*" ,-" /0" 23" 56" " 	" " " " " " " "  !" #$" &'" )*" ,-" /0" 23" 56" " 	" " " " " " " "  !" #$" &'" )*" ,-" /0" 23" 56" " 	" " " " " " " "  !" #$" &'" )*" ,-" /0" 23" 56" " 	" " " " " " " "  !" #$" &'" )*" ,-" /0" 23" 56"  !"" #"" 	#"" #"" #"" #"" #"" #"" #"" #""  !#"" #$#"" &'#"" )*#"" ,-#"" /0#"" 23#"" 56#"$ %"$ 	%"$ %"$ %"$ %"$ %"$ %"$ %"$ %"$  !%"$ #$%"$ &'%"$ )*%"$ ,-%"$ /0%"$ 23%"$ 56%"& '"& 	'"& '"& '"& '"& '"& '"& '"& '"&  !'"& #$'"& &''"& )*'"& ,-'"& /0'"& 23'"& 56'"( )"( 	)"( )"( )"( )"( )"( )"( )"( )"(  !)"( #$)"( &')"( )*)"( ,-)"( /0)"( 23)"( 56)"* +"* 	+"* +"* +"* +"* +"* +"* +"* +"*  !+"* #$+"* &'+"* )*+"* ,-+"* /0+"* 23+"* 56+", -", 	-", -", -", -", -", -", -", -",  !-", #$-", &'-", )*-", ,--", /0-", 23-", 56-". /". 	/". /". /". /". /". /". /". /".  !/". #$/". &'/". )*/". ,-/". /0/". 23/". 56/"0 1"0 	1"0 1"2 
3 < / / / / / / = = = = = = = = > > = = = = K K
 J J
 P Pr1   