
    Og_                        d dl Z d dlZd dlZd dlZd dlmZmZmZmZm	Z	 d dl
mZ d dlmZ d dlmZ d dlmZmZmZmZmZmZ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&m'Z' d Z(d Z)d	 Z*ejV                  jY                  d
e"e$eee eg      d        Z-ejV                  jY                  d
eeg      d        Z.ejV                  jY                  d
e"eeeee eg      d        Z/d Z0ejV                  jY                  d
e"eeeee eg      d        Z1d Z2ejV                  jY                  d
e"eee$g      d        Z3ejV                  jY                  d
eee eg      d        Z4d Z5d Z6d Z7d Z8d Z9d Z:ejV                  jY                  dejv                  ejx                   ejz                  ej|                  ejV                  j                  ej                  dk  d            g      ejV                  jY                  d
edd       d               ZAd  ZBd! ZCejV                  j                  ej                  dk  d      d"        ZDejV                  j                  ej                  dk  d      d#        ZEejV                  jY                  d
e      d$        ZFd% ZGejV                  jY                  d
e ej                  ej                  ej                        efz         d&        ZJejV                  jY                  d
edd'       d(        ZKejV                  jY                  d
e      d)        ZLejV                  jY                  d
edd'       d*        ZMejV                  jY                  d
e      d+        ZNd, ZOd- ZPejV                  jY                  d
e"eeee$e eeeee ej                  dg       ej                   ej                  dg            g      d.        ZSd/ ZTd0 ZUd1 ZVejV                  jY                  d
dggeggeggeeggf      d2        ZWejV                  jY                  d
e"ee$g      d3        ZXejV                  jY                  d
ddgg g      d4        ZYejV                  jY                  d
d5d5gd6g      d7        ZZejV                  jY                  d
e"eeee$e eeeeedg      d8        Z[d9 Z\d: Z]ejV                  jY                  d
dgge$ggg      d;        Z^ejV                  j                  ej                  d<k  d=      d>        Z_ejV                  j                  ej                  d<k  d=      d?        Z`ejV                  j                  ej                  d<k  d=      ejV                  jY                  d@dA      dB               ZaejV                  j                  ej                  d<k  d=      dC        ZbejV                  j                  ej                  d<k  d=      ejV                  jY                  d@dA      dD               ZcejV                  j                  ej                  d<k  d=      ejV                  jY                  d@dA      dE               ZdejV                  j                  ej                  d<k  d=      dF        ZeejV                  j                  ej                  d<k  d=      dG        ZfejV                  jY                  dH e	g dI      dJ e e	g dK       e	g dL      g      f ejz                   e	g dI      dM e	g dN      ejV                  j                  ej                  dOk  dP             e	g dI      dQ e e	g dK       e	g dL      g      f edRdSg      dJ e       f ejz                   edRdSg      dM edRdRg      ejV                  j                  ej                  dOk  dP             edRdSg      dQ edRdRg      f ejz                   eg dT      dJ e       ejV                  j                  ej                  dOk(  dU             ejz                   eg dT      dM eg dV      ejV                  j                  ej                  dOk  dP             ejz                   eg dT      dQ eg dW      ejV                  j                  ej                  dOk  dX             e	g dT      dJ e	       f ejz                   e	g dT      dM e	g dV      ejV                  j                  ej                  dOk  dP             e	g dT      dQ e	       fg      dY        ZgejV                  j                  ej                  d<k  d=      dZ        ZhejV                  jY                  d[d\d]g      d^        ZiejV                  j                  ej                  dOk\  d_      d`        ZjejV                  jY                  da ej                  d dg      dbd5g      dc        Zkdd Zl ej                  e"eg      ZnejV                  j                  ej                  dek  df      ZoejV                  jY                  dge"e"fe#e"f ejz                  eeeo       ejz                  eeeo      eefeef ejz                  eeeo       ejz                  eeeo      e$e$fe'e$fe%e%fe&e%feefeefeefeefe e fe!e fenenfeenfg      dh        ZpejV                  jY                  dge"e#fe#e#f ejz                  eeeo       ejz                  eeeo      eefeef ejz                  eeeo       ejz                  eeeo      e$e'fe'e'fe%e&fe&e&feefeefeefeefe e!fe!e!fenefeefg      di        Zqy)j    N)
LinearRing
LineStringMultiPolygonPointPolygon)assert_geometries_equal)	all_types)empty)empty_line_stringempty_line_string_zempty_pointempty_point_zempty_polygongeometry_collectiongeometry_collection_zignore_invalidline_stringline_string_nanline_string_zlinear_ringmulti_line_stringmulti_line_string_zmulti_pointmulti_point_zmulti_polygonmulti_polygon_zpointpoint_zpolygonpolygon_with_holepolygon_with_hole_z	polygon_zc                  j    t        j                  t        dz         j                         } | g dk(  sJ y )NN)
r         r   r   r   r   r   r   r   )shapelyget_num_pointsr	   tolistactuals    `/var/www/html/public_html/myphp/venv/lib/python3.12/site-packages/shapely/tests/test_geometry.pytest_get_num_pointsr-   '   s/    ##I$78??AF3333    c                  v    t        j                  t        t        d fz         } | j	                         g dk(  sJ y )N)r   r   r   r   r   r   r   r   r      r   )r'   get_num_interior_ringsr	   r    r)   r*   s    r,   test_get_num_interior_ringsr2   ,   s2    ++I9JD8Q,QRF==?????r.   c                  j    t        j                  t        dz         j                         } | g dk(  sJ y )Nr$   )
r0   r0   r0   r0      r0   r4   r4   r   r   )r'   get_num_geometriesr	   r)   r*   s    r,   test_get_num_geometriesr6   1   s/    ''	G(;<CCEF3333r.   geomc                 ~    t        j                  | g d      }t        j                  |      j                         sJ y N)r   r4   )r'   	get_point
is_missingallr7   r+   s     r,   test_get_point_non_linestringr?   6   s3     tZ0Ff%))+++r.   c                     t        j                  |       }t        j                  | d| ||dz    g      }t        |d   |d          t        j                  |dd       j                         sJ y Nr   r0   r4      )r'   r(   r;   r   r<   r=   r7   nr+   s      r,   test_get_pointrE   F   sj    t$Ata!Q!a%%9:FF1Ivay1fQqk*..000r.   c                 x    t        j                  |       }t        j                  |      j                         sJ y r$   )r'   get_exterior_ringr<   r=   r>   s     r,   "test_get_exterior_ring_non_polygonrH   N   s1     &&t,Ff%))+++r.   c                      t        j                  t        t        g      } t        j                  |       dk(  j                         sJ y Nr4   )r'   rG   r   r    get_type_idr=   r*   s    r,   test_get_exterior_ringrL   _   s:    &&1B'CDF'1,11333r.   c                 ~    t        j                  | g d      }t        j                  |      j                         sJ y r9   )r'   get_interior_ringr<   r=   r>   s     r,   "test_get_interior_ring_non_polygonrO   d   s3     &&tZ8Ff%))+++r.   c                      t        j                  t        g d      } t        | d   | d          t        j                  | dd       j                         sJ y N)r   r:   r0   r   r0   r4   rB   )r'   rN   r    r   r<   r=   r*   s    r,   test_get_interior_ringrS   u   sJ    &&'8.IFF1Ivay1fQqk*..000r.   c                     t        j                  | g d      }t        |d   |d          t        j                  |dd       j	                         sJ y rQ   )r'   get_geometryr   r<   r=   r>   s     r,   test_get_geometry_simplerV   {   sI    !!$7FF1Ivay1fQqk*..000r.   c                     t        j                  |       }t        j                  | d| ||dz    g      }t        |d   |d          t        j                  |dd       j                         sJ y rA   )r'   r5   rU   r   r<   r=   rC   s      r,   test_get_geometry_collectionrX      sl     	""4(A!!$QBQU8(<=FF1Ivay1fQqk*..000r.   c                  d    t        j                  t              j                         } | g dk(  sJ y )N)	r   r0   r4   r%   rB   r&         r[   )r'   rK   r	   r)   r*   s    r,   test_get_type_idr\      s*      +224F0000r.   c                  d    t        j                  t              j                         } | g dk(  sJ y )N)	r   r0   r0   r4   r   r0   r4   r0   r:   )r'   get_dimensionsr	   r)   r*   s    r,   test_get_dimensionsr_      s*    ##I.557F1111r.   c                  r    t        j                  t        t        d g      j	                         } | g dk(  sJ y )N)r4   r%   r:   )r'   get_coordinate_dimensionr   r   r)   r*   s    r,   test_get_coordinate_dimensionrb      s0    --ugt.DELLNFZr.   c                  j    t        j                  t        dz         j                         } | g dk(  sJ y )Nr$   )
r0   r%   r&   r&   r4   r4   
   r%   r   r   )r'   get_num_coordinatesr	   r)   r*   s    r,   test_get_num_coordinatesrf      s/    ((W)<=DDFF4444r.   c                  j    t        j                  t        dz         j                         } | g dk(  sJ y)z;All geometry types have no SRID by default; None returns -1r$   )
r   r   r   r   r   r   r   r   r   r:   N)r'   get_sridr	   r)   r*   s    r,   test_get_sridri      s/    i'1299;F4444r.   c                      t        j                  t        d      } t        j                  t              dk(  sJ t        j                  |       dk(  sJ y )Ni  r   )r'   set_sridr   rh   r*   s    r,   test_get_set_sridrl      sF    eT*FE"a'''F#t+++r.   func)r%   r[   r   z
GEOS < 3.7)reason)marksr0   c                 >    t        j                   | |            sJ y r$   )npisnan)rm   r7   s     r,   test_get_xyz_no_pointrs      s     88DJr.   c                  l    t        j                  t        t        g      j	                         ddgk(  sJ y )Ng       @)r'   get_xr   r   r)    r.   r,   
test_get_xrw      +    ==%)*113SzAAAr.   c                  l    t        j                  t        t        g      j	                         ddgk(  sJ y )Ng      @)r'   get_yr   r   r)   rv   r.   r,   
test_get_yr{      rx   r.   c                  `    t        j                  t        g      j                         dgk(  sJ y )Ng      @)r'   get_zr   r)   rv   r.   r,   
test_get_zr~      s&    =='#**,555r.   c                  `    t        j                  t        j                  t                    sJ y r$   )rq   rr   r'   r}   r   rv   r.   r,   test_get_z_2dr      s    88GMM%()))r.   c                 X    t        j                  t        |             }t        ||        y r$   )r'   from_wktstrr   r>   s     r,   test_new_from_wktr      s     c$i(FFD)r.   c                      t        dd      } t        j                  t              5  | xj                  dz  c_        d d d        y # 1 sw Y   y xY w)Nr4   r0   )r   pytestraisesAttributeError_geom)r   s    r,   test_adapt_ptr_raisesr      s<    !QKE	~	& q  s   AAc                 `    t        |       t        t        j                  | d             k(  sJ y )Nc                     | S r$   rv   xs    r,   <lambda>z&test_hash_same_equal.<locals>.<lambda>   s     r.   hashr'   	transformr7   s    r,   test_hash_same_equalr      s(     :g//kBCCCCr.   r:   c                 `    t        |       t        t        j                  | d             k7  sJ y )Nc                     | dz   S Nr0   rv   r   s    r,   r   z*test_hash_same_not_equal.<locals>.<lambda>   s
    A r.   r   r   s    r,   test_hash_same_not_equalr      s&    :g//oFGGGGr.   c                 <    | t        j                  | d       k(  sJ y )Nc                     | S r$   rv   r   s    r,   r   ztest_eq.<locals>.<lambda>   s    Q r.   r'   r   r   s    r,   test_eqr      s    7$$T;7777r.   c                 <    | t        j                  | d       k7  sJ y )Nc                     | dz   S r   rv   r   s    r,   r   ztest_neq.<locals>.<lambda>   s
    QU r.   r   r   s    r,   test_neqr      s    7$$T?;;;;r.   c                 V    | t        j                  | d       h}t        |      dk(  sJ y )Nc                     | S r$   rv   r   s    r,   r   z!test_set_unique.<locals>.<lambda>   s     r.   r0   )r'   r   len)r7   as     r,   test_set_uniquer      s)    	w  {34Aq6Q;;r.   c                  "   t               5  t        t        j                  t        j
                  t        j
                  gt        j
                  t        j
                  gggdz              } d d d        t               dk(  sJ y # 1 sw Y   xY w)Nrd   )r   setr'   linestringsrq   nanr   r   s    r,   test_set_nanr      so     
	 R##rvvrvv&68H%I$JR$OPQRq6R<<R Rs   A!BBc                  J    t        t        gdz        } t        |       dk(  sJ y )Nrd   r0   )r   r   r   r   s    r,   test_set_nan_same_objectsr      s&     	_"#Aq6Q;;r.   c                     t        j                  |       }|dk(  rg }n t        j                  | t        d|            }t        j                  |       }t        |      |k(  sJ t        ||       y Nr   )r'   r5   rU   range	get_partsr   r   )r7   expected_num_partsexpected_partspartss       r,   test_get_partsr     si    & !33D9Q --dE!=O4PQd#Eu:++++E>2r.   c                  p   t        j                  d t        t        t        t
        g      } g }| D ]K  }t        dt        j                  |            D ]'  }|j                  t        j                  ||             ) M t        j                  |       }t        |      t        |      k(  sJ t        ||       y r   )rq   arrayr   r   r   r   r   r'   r5   appendrU   r   r   r   )r7   r   gir   s        r,   test_get_parts_arrayr   %  s     88T,k5-PQDN >q'44Q78 	>A!!'"6"6q!"<=	>> d#Eu:^,,,,E>2r.   c                  V   t        j                  t        t        t        g      } t        j
                  |       }t        j                  | t        d|            }t        j                  |       }t        |      |k(  sJ t        ||       g }t        j                  |      D ]K  }t        dt        j
                  |            D ]'  }|j                  t        j                  ||             ) M t        j                  |      }t        |      t        |      k(  sJ t        ||       y)zOn the first pass, the individual Multi* geometry objects are returned
    from the collection.  On the second pass, the individual singular geometry
    objects within those are returned.
    r   N)r'   geometrycollectionsr   r   r   r5   rU   r   r   r   r   rq   asarrayr   )r7   r   r   r   expected_subpartsr   r   subpartss           r,   (test_get_parts_geometry_collection_multir   3  s   
 &&5F'VWD 33D9))$a9K0LMNd#Eu:++++E>2ZZ' Aq'44Q78 	AA$$W%9%9!Q%?@	AA   'Hx=C 12222H&78r.   c                     t        j                  t        t        t        g      } g }g }t        |       D ]_  \  }}t        dt        j                  |            D ]8  }|j                  t        j                  ||             |j                  |       : a t        j                  | d      \  }}t        |      t        |      k(  sJ t        ||       t        j                  ||      sJ y Nr   T)return_index)rq   r   r   r   r   	enumerater   r'   r5   r   rU   r   r   r   array_equalr7   r   expected_indexr   r   jr   indexs           r,   test_get_parts_return_indexr   J  s    88[%78DNN$ %1q'44Q78 	%A!!'"6"6q!"<=!!!$	%%
 $$T=LE5u:^,,,,E>2>>%000r.   c                     t        j                  t        d      5  t        j                  |        ddd       y# 1 sw Y   yxY wzOnly 1D inputs are supportedzArray should be one dimensionalmatchNr   r   
ValueErrorr'   r   r   s    r,   !test_get_parts_invalid_dimensionsr   Y  s6     
z)J	K  $     	   ;Ac                 B    t        | t        j                  |              y)z?Non-multipart geometries should be returned identical to inputsN)r   r'   r   r   s    r,   test_get_parts_non_multir   c  s     D'"3"3D"9:r.   c                 J    t        t        j                  |             dk(  sJ y r   )r   r'   r   r   s    r,   test_get_parts_Noner   i  s     w  &'1,,,r.   foo*   c                     t        j                  t        d      5  t        j                  |        d d d        y # 1 sw Y   y xY w)Nz*One of the arguments is of incorrect type.r   )r   r   	TypeErrorr'   r   r   s    r,   test_get_parts_invalid_geometryr   n  s4    	y(T	U  $     r   c                 ^   t        j                  |       t         j                  j                  k7  st        j                  |       r&t        j
                  |       }t        |      dk(  sJ y t        j
                  |       }t        |      dk(  sJ |d   t        j                  |       k(  sJ y Nr   r0   )r'   rK   GeometryTypePOLYGONis_empty	get_ringsr   rG   )r7   ringss     r,   test_get_ringsr   t  s    $ 	D!W%9%9%A%AAgFVFVG !!$'5zQ!!$'5zQQx744T::::r.   c                      t        j                  t              } t        |       dk(  sJ | d   t        j                  t              k(  sJ | d   t        j
                  t        d      k(  sJ y )Nr4   r   r0   )r'   r   r    r   rG   rN   )r   s    r,   test_get_rings_holesr     sa    /0Eu:??8w001BCCCC8w001BAFFFFr.   c                  x   t        j                  t        d t        t        g      } g }g }t        |       D ]  \  }}|t        j                  |      r|j                  t        j                  |             |j                  |       t        dt        j                  |            D ]8  }|j                  t        j                  ||             |j                  |       :  t        j                  | d      \  }}t        |      t        |      k(  sJ t        ||       t        j                   ||      sJ y r   )rq   r   r   r   r    r   r'   r   r   rG   r   r1   rN   r   r   r   r   r   s           r,   test_get_rings_return_indexr     s   88WdM3DEFDNN$ %19((+g77:;a q'88;< 	%A!!'";";Aq"AB!!!$	%% $$T=LE5u:^,,,,E>2>>%000r.   c                     t        j                  t        d      5  t        j                  |        ddd       y# 1 sw Y   yxY wr   r   r   s    r,   !test_get_rings_invalid_dimensionsr     s6     
z)J	K  $     r   )r%   rZ   r   z
GEOS < 3.6c                  F   t         t        t        t        t        fz   } t        j                  |       j                         }|dgt        |       z  k(  sJ t        j                  | d      }t        j                  |      j                         }|dgt        |       z  k(  sJ y r   )
r	   r   r   r   r   r'   get_precisionr)   r   set_precision)
geometriesr+   geometrys      r,   test_get_precisionr     s    g{4E}UUJ"":.557FaS3z?****$$Z3H""8,335FaS3z?****r.   c                      t        j                  t        j                  t        j                  d g                  sJ y r$   )rq   r=   rr   r'   r   rv   r.   r,   test_get_precision_noner     s*    66"((700$89:::r.   mode)valid_output	pointwisekeep_collapsedc                    t        dd      }t        j                  |      dk(  sJ t        j                  |d|       }t        j                  |      dk(  sJ t	        ||       t        j                  |d|       }t        j                  |      dk(  sJ t	        |t        dd             t	        |t        dd             y )N?r   r   r0   )r   r'   r   r   r   )r   initial_geometryr   s      r,   test_set_precisionr     s     S#  !12a777$$%5qtDH  *a///H&67$$%5qtDH  *a///HeAqk2,eCo>r.   c                      t        j                  t        g d      d      } t        | t        g d             t        j                  | d      } t        | t        g d             y )N)r   r   r   r   r0   r0   r0   r   r0   )r   r   r   )r'   r   r   r   )r   s    r,   test_set_precision_drop_coordsr     sQ     $$Z0P%QSTUHHj1Q&RS $$Xq1HHj1I&JKr.   c           	      (   t        j                         5  t        j                  d       t        j                  t        ddd      d|       }t        j                  |      dk(  sJ t        |t        ddd             d d d        y # 1 sw Y   y xY w)Nignorer   r0   r   )warningscatch_warningssimplefilterr'   r   r   r   r   )r   r   s     r,   test_set_precision_zr    s|     
	 	 	" <h'((sC)=qtL$$X.!333%1c*:;	< < <s   A*BBc                     t        j                         5  t        j                  d       t        j                  t
        d|       }t        |t
               d d d        y # 1 sw Y   y xY w)Nr  r0   r   )r  r  r  r'   r   r   r   )r   r+   s     r,   test_set_precision_nanr    sQ     
	 	 	" 9h'&&E89 9 9s   AA  A)c                  4    t        j                  d d      J y r   )r'   r   rv   r.   r,   test_set_precision_noner	    s      q)111r.   c                  d    t        j                  t        dd      t        j                        J y )Nr   )r'   r   r   rq   r   rv   r.   r,    test_set_precision_grid_size_nanr    s%      sC"&&9AAAr.   zgeometry,mode,expected)r4   r4   rB   r4   )g	@r%   rB   rB   r4   rB   )gffffff@r%   r  r   )r  r  r%   r%   r  )r  r  r  r  r   )r  r  r  r  r  r  r  )r%   rd   r   z%pointwise does not work pre-GEOS 3.10r   r   皙?r  )r   )r  r   r  )r   r  r   zSegfaults on GEOS 3.10.0)r   r   r   r   r   )r   r   r   z7this collapsed into an invalid linearring pre-GEOS 3.10c                 @   t        j                  | d|      }t         j                  dk  rTt        j                  t        j                  |            t        j                  t        j                  |            k(  sJ yt        t        j                  |      |       y)zILines and polygons collapse to empty geometries if vertices are too closer0   r   r%   	   r   N)r'   r   geos_versionto_wkt	normalizer   force_2d)r   r   expectedr+   s       r,   test_set_precision_collapser    s    B ""8QT:Fi' ~~g//78GNNh'=
 
 	
 

 	  0 0 8(Cr.   c                     t        j                  t        j                  dddd            } t        j                  t        j                  dddd            }t        j                  t        j                  | |            dk(  sJ t        j
                  | d      } t        j
                  |d      }t        j                  | |      }t        j                  |      dk(  sJ t        |t        ddg             y	)
zHOperations should use the most precise presision grid size of the inputsr   r   g      ?g      ?g      ?r0   r   )r0   r   N)r'   r  boxr   intersectionr   r   r   )box1box2outs      r,   test_set_precision_intersectionr"  i  s     W[[AsC89DW[[q$=>D  !5!5dD!ABaGGG   s+D  q)D


tT
*C  %,,,CVV,<!=>r.   preserve_topologyFTc                     t        j                  t              5  t        j                  t        ddg      d|       }d d d        t        t        j                        t                      y # 1 sw Y   1xY w)Nr   r        ?)r#  r   warnsUserWarningr'   r   r   r   r  )r#  r+   s     r,   set_precision_preserve_topologyr)  z  sa     
k	" 
&&
+,/

 G,,V4jlC
 
   $A..A7zGEOS >= 3.10c                      t        j                  t              5  t        j                  t        ddg      dd      } d d d        t        t        j                         t                      y # 1 sw Y   1xY w)Nr   r  r%  r   r   r&  r*   s    r,   set_precision_pointwise_pre_310r,    sa     
k	" 
&&
+,

 G,,V4jlC
 
r*  flagsrB   c                     t        j                  t        t        f      5  t        j
                  j                  t        d|        d d d        y # 1 sw Y   y xY w)Nr%  )r   r   r   r   r'   libr   r   )r-  s    r,   set_precision_illegal_flagsr0    s@     

I.	/ ;!!+sE:; ; ;s   &AAc                      t        j                  t        j                  ddg            } t        j                  |       j                         sJ y)z(Compatibility with empty_like, see GH373N)rq   
empty_liker   r'   r<   r=   )r   s    r,   
test_emptyr3    s:    
bhhd|,-Aa $$&&&r.   r  z8Empty points don't have a dimensionality before GEOS 3.9zgeom,expectedc                 z    t        j                  |       }t        j                  |      dk(  sJ t        ||       y rJ   )r'   r  ra   r   r7   r  r+   s      r,   test_force_2dr6    s7    4 d#F++F3q888FH-r.   c                 ~    t        j                  | d      }t        j                  |      dk(  sJ t        ||       y )NrB   )zr%   )r'   force_3dra   r   r5  s      r,   test_force_3dr:    s9    4 da(F++F3q888FH-r.   )rr  numpyrq   r   r'   r   r   r   r   r   shapely.testingr   shapely.tests.commonr	   r
   empty_geometry_collectionr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r-   r2   r6   markparametrizer?   rE   rH   rL   rO   rS   rV   rX   r\   r_   rb   rf   ri   rl   ru   rz   paramr}   skipifr  rs   rw   r{   r~   r   r   r   pointsr   r   r   r   r   r   r   r   r   r2  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  r3  r   geometry_collection_2empty_geom_markr6  r:  rv   r.   r,   <module>rF     s       H H 3 * C      84
@
4
 

,
,
 +{!;<1 =1 
,,
4
 
,,
1 %k7!KL1 M1 
[+]<OP111
2
 
5
5, 
MM++$$$$y0 % 	
	 12/  0 BB G((94\J6 K6 G((94\J* K* +* ,*
 
I7EEDD 3B0H 1H +8 ,8 3B0< 1< + ,
 
!$hbhhv&'$	3%$	339.1 
fX+;@Q2R1ST 	  %g!>?; @;
 $!34- 5- %%"!56  7 
 
!"	;#"	;G1& D6(gYK!89  :  G((94\J+ K+ G((94\J; K; G((94\J!PQ? R K? G((94\JL KL G((94\J!PQ< R K< G((94\J!PQ9 R K9 G((94\J2 K2 G((94\JB KB  PQ<=<=		
 	PQLM++$$$$z1> % 		
 PQ<=<=		
 
VZ(	)>:<H
+,'(++$$$$z1> % 		
 
+,'(	

 	GHL++$$$$
2;U % 		
 	GH?@++$$$$z1> % 		
 	GH/0++$$$$z1P % 		
 DEI	

 	DE<=++$$$$z1> % 		
 DEI	
m[^~D^~D G((94\J? K?  ,udm<D =D G((J6~ND OD 8288QF#3Q">?; @;' 433UK4HI ++$$9$E %  		%[+_E]KG	k"	$&(9Q(*;?S	'	G	-.	/0	k"	$	-.	/0	&	-(	 56	 56)2.32. 		'[-G]MI	m$	&&(;?S(*=_U	)	I	/0	12	m$	&	/0	12	(	/*	 56	 56)2.32.r.   