
     j+                     4   d dl m Z  d dlmZ d dlZd dlZ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c mc mZ dZd Z ej        ddg	          d
             Z ej        ej        	          d             Zej                            dddg          d             Zd Z d Z!d Z"ej                            d ed ej#        d          i          df eddgi          dfg          d             Z$d Z%d Z&ej                            di ddfdd id!d"fg          d#             Z'ej                            d$d%d g          d&             Z(ej                            d'g d(          d)             Z)ej                            d*d+d,g          d-             Z*ej                            d. ed d/gd0d1gd2d3gd4d5gg ed6dge+7           ej#        d2          8          d9d: id;f ed< e d=d/d/           e d=d0d0          gi          d<d> id?f ed@ e
j,        dAdBgdCD          i          d@dE idFf e e
j-        d/d0gdG7           e
j-        d/d0gdH7           e
j-        d/d0gdI7           e
j-        d/d0gdJ7           e
j-        d%d gdK7           e
j-        dLdMg e
j.        dLdMg          7           e
j-        d/dNge+7          dO          dP gd5z  dQfg          dR             Z/dS Z0dT Z1ej                            dUd/d3g          dV             Z2dW Z3ej                            dXdYdZg          d[             Z4ej                            d\dd] d^fdd_ dNfd0d` dNfd0da dNfg          db             Z5ej                            dcdgd%d          de             Z6ej                            dcdgd%d          df             Z7dg Z8dh Z9di Z:ej                            dj ej;         ej#        d0          <                    d0           ej=         e>d2          d0          gdkdlgm          dndof ej;         ej#        d2           ej=         e>d2          d0          g          dpdqfg          dr             Z?ds Z@ej                            dtg du          dv             ZA G dw dx          ZBej                            dydzd{d|gg          d}             ZCd~ ZDd ZEd ZFej                            dd%d g          ej                            dd%d g          ej                            dd%d g          ej                            d ed d/g          df ed d/gd          df ejG        dLgdMdgg          df ejG        dLgdMdggddgm          dfg          ej                            d ed d/g          df ed d/gd          df ejG        dLgdMdgg          df ejG        dLgdMdggddgm          dfg          d                                                             ZHej                            dd%d g          ej                            dd%d g          ej                            dd%d g          ej                            d e ej#        d                    df e ej#        d          d          df ejG        dLdMgddgddgg          df ejG        dLdMgddgddggg dm          dfg          ej                            d e ej#        d                    df e ej#        d          d          df ejG        dLdMgddgddgg          df ejG        dLdMgddgddggg dm          dfg          d                                                             ZIej                            dd d g          d             ZJej                            dd d g          ej                            dddg          d                         ZKej                            dd%d g          d             ZLd ZMd ZNej                            dddg          d             ZOej                            dddg          d             ZPej                            ddd fdd fg          ej                            dg d          d                         ZQej                            dyd%d g          d             ZRd ZSej                            dg d          d             ZT G d d          ZUd ZVej                            dddg          d             ZWd ZXd ZYd ZZd Z[d Z\dÄ Z]dS )    )datetime)StringION)	DataFrameIndex
MultiIndex
get_optionoption_contexta  Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.c                     d                     |dg          } | dddd|          }t          |d          5 }|                                }ddd           n# 1 swxY w Y   |                                S )	a.  
    Read HTML file from formats data directory.

    Parameters
    ----------
    datapath : pytest fixture
        The datapath fixture injected into a test by pytest.
    name : str
        The name of the HTML file without the suffix.

    Returns
    -------
    str : contents of HTML file.
    .htmlioformatsdatazutf-8encodingN)joinopenreadrstrip)datapathnamefilenamefilepathfr   s         xC:\Users\Terasoftware\OneDrive\Desktop\faahhh\fyndo\fyndo\venv\Lib\site-packages\pandas/tests/io/formats/test_to_html.pyexpected_htmlr   !   s     xxv''HxiBBH	h	)	)	) Qvvxx              ;;==s   AA Amixedempty)paramsc           	         | j         dk    rt          t          j                            d                              d          t          d t          d          D                       dt          j        d                    }t          j	        |j
        ddd	f<   t          j	        |j
        ddd
f<   |S | j         dk    r$t          t          j        d                    }|S dS )z8Fixture for a big mixed Dataframe and an empty Dataframer         c                     g | ]}| d S )z?! ).0is     r   
<listcomp>z%biggie_df_fixture.<locals>.<listcomp>>   s    999qHHH999    ABindexN   r*   r+   r   )paramr   nprandomdefault_rngstandard_normalr   rangearangenanloc)requestdfs     r   biggie_df_fixturer:   7   s     } Y**1--==cBB99eCjj999::  )C..
 
 
 6ssCx6ssCx		'	! RYs^^,,,	 r(   c                     | j         S N)r/   )r8   s    r   justifyr=   J   s
    =r(   	col_space   2   c                 V   t          t          j                            d                              d                    }|                    |           }d |                    d          D             }t          |          dk    sJ |D ]}d|v sJ t          |           |v sJ d S )	Nr!         sizer>   c                 <    g | ]}t          j        d |          |S z<th[>\s]researchr%   xs     r   r'   z/test_to_html_with_col_space.<locals>.<listcomp>U   s)    HHH!biQ.G.GHAHHHr(   z\nr   z	min-width)r   r0   r1   r2   to_htmlsplitlenstr)r>   r9   resulthdrshs        r   test_to_html_with_col_spacerV   O   s    	29((++222??	@	@B ZZ)Z,,FHHv||E**HHHDt99q= # #a9~~"""""# #r(   c                  ^   t          t          j                            d                              d          g d          } d}t	          j        t          |          5  |                     dd	g
           d d d            n# 1 swxY w Y   t	          j        t          |          5  |                     g d
           d d d            n# 1 swxY w Y   d}t	          j        t          |          5  |                     dddd
           d d d            d S # 1 swxY w Y   d S )Nr!   rD   rD   rE   abccolumnszGCol_space length\(\d+\) should match DataFrame number of columns\(\d+\)matchr?   (   rG   )r?   ra   r@   <   zunknown columnfoo   "   )rZ   r[   d)r   r0   r1   r2   pytestraises
ValueErrorrO   r9   msgs     r   2test_to_html_with_column_specific_col_space_raisesrl   \   s   	
	a  ''V'44ooo
 
 
B
	0  
z	-	-	- ' '


b"X
&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 
z	-	-	- / /


---
.../ / / / / / / / / / / / / / / C	z	-	-	- = =


5r;;
<<<= = = = = = = = = = = = = = = = = =s6   "BBB-CCC:D""D&)D&c                     t          t          j                            d                              d          g d          } |                     ddd	          }d
 |                    d          D             }d|d         v sJ d|d         v sJ d|d         v sJ |                     g d	          }d |                    d          D             }d|d         v sJ d|d         v sJ d|d         v sJ d S )Nr!   rX   rE   rY   r]   2emrd   rZ   r[   rG   c                 <    g | ]}t          j        d |          |S rI   rJ   rM   s     r   r'   z?test_to_html_with_column_specific_col_space.<locals>.<listcomp>v   )    GGG!RY{A-F-FGAGGGr(   
zmin-width: 2em;">a</th>rC   zmin-width: 23px;">b</th>z
<th>c</th>rD   )1emr!   rD   c                 <    g | ]}t          j        d |          |S rI   rJ   rM   s     r   r'   z?test_to_html_with_column_specific_col_space.<locals>.<listcomp>|   rq   r(   zmin-width: 1em;">a</th>zmin-width: 2px;">b</th>zmin-width: 3px;">c</th>)r   r0   r1   r2   rO   rP   )r9   rS   rT   s      r   +test_to_html_with_column_specific_col_spaceru   p   s6   	
	a  ''V'44ooo
 
 
B ZZB"7"7Z88FGGv||D))GGGD$Q////%a000047""""ZZ---Z00FGGv||D))GGGD$Q////$Q////$Q//////r(   c                      ddgddgddgd} t          |                               ddg          }|                                }d	|vsJ d S )
NrZ   r[    rC   r!   )c1c2r   rx   ry   rowspan)r   	set_indexrO   )r   r9   rS   s      r   $test_to_html_with_empty_string_labelr|      s^    *S"I1v>>D	4	"	"D$<	0	0BZZ\\FF""""""r(   zdf,expectedu   σg      $@	unicode_1r*   	unicode_2c                 ^    t          ||          }|                                 }||k    sJ d S r<   r   rO   )r9   expectedr   rS   s       r   test_to_html_unicoder      s7     Xx00HZZ\\FXr(   c                    |dz  }|                      |d           t          t          |          d          5 }|                                  |                                k    sJ 	 d d d            d S # 1 swxY w Y   d S )N	test.htmlgbkr   )rO   r   rR   r   )float_frametmp_pathpathr   s       r   test_to_html_encodingr      s    k!Du---	c$ii%	(	(	( 1A""$$000001 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1s   -A66A:=A:c                     t          dg di          }|                    d          }t          | d          }||k    sJ d S )Nr*   )g      @g@g@,)decimalgh12031_expected_outputr   rO   r   r   r9   rS   r   s       r   test_to_html_decimalr      sR    	C)	*	*BZZZ$$FX'@AAHXr(   zkwargs,string,expectedz<type 'str'>escapedescapeFz<b>bold</b>escape_disabledc                     d}d}||||i||||id} t          |          j        di | }t          ||          }||k    sJ d S )Nzstr<ing1 &amp;zstri>ng2 &amp;)zco<l1zco>l2r$   r   )kwargsstringr   r   rZ   r[   	test_dictrS   s           r   test_to_html_escapedr      ss     	AAfa0Avq&;QRRI)Yy!!)33F33FXx00HXr(   index_is_namedTc           	      z   t          t          d          t          dd          t          dd          t          dd          d          }t          j        ddgdd	gg          |_        | r t          |j        j        d
          |_        |                    d          }t          |d          }||k    sJ d S )Nr!   rD         rZ   r[   r\   rf   rZ   r[   r\   rf   idxr   Fr,   gh8452_expected_output)
r   r4   r   from_productr^   r   r-   valuesrO   r   )r   r   r9   rS   r   s        r   #test_to_html_multiindex_index_falser      s     
AhhU1a[[uQ{{q!MM
 
B (3*sCj)ABBBJ 6u555ZZeZ$$FX'?@@HXr(   zmulti_sparse,expected))F(multiindex_sparsify_false_multi_sparse_1)F(multiindex_sparsify_false_multi_sparse_2)Tmultiindex_sparsify_1)Tmultiindex_sparsify_2c                 n   t          j        g dg dgdd g          }t          ddgddgd	d
gddgg|          }|                    d          r|d d d         |_        t          d|           5  |                                }d d d            n# 1 swxY w Y   t          ||          }||k    sJ d S )N)r   r   rC   rC   )r   rC   r   rC   rc   namesr   rC   r!   rD      r      r   r,   2zdisplay.multi_sparse)r   from_arraysr   endswithr^   r	   rO   r   )multi_sparser   r   r-   r9   rS   s         r    test_to_html_multiindex_sparsifyr      s    "LLL,,,#?t}UUUE	QFQFQFQF35	A	A	AB  33Q3Z
	.	=	=                Xx00HXs   1BBBzmax_rows,expected)rb   gh14882_expected_output_1)8   gh14882_expected_output_2c                     t          j        g dg dg dgg d          }t          dt          t	          |                    i|          }|                    |           }t          ||          }||k    sJ d S )	N)d   r"   i,  )
   r.   r?   )rC   r!   rD   r   r   r   r   rY   r   nr,   )max_rows)r   r   r   r4   rQ   rO   r   )r   r   r   r-   r9   rS   s         r   )test_to_html_multiindex_odd_even_truncater      s     #	,,,(=(=(=>ooo  E 
Cs5zz**+5	9	9	9BZZZ**FXx00HXr(   zdf,formatters,expectedrC   r!   rD   r   r   r   r   rc   dtyper^   r-   	__index__c                     d|          S )Nabcdr$   rN   s    r   <lambda>r      s
    F1I r(   index_formattermonthsi  c                 ,    |                      d          S )Nz%Y-%mstrftimer   s    r   r   r      s    G!4!4 r(   datetime64_monthformatterhodz10:10:10.100z12:12:12.120z%H:%M:%S.%f)formatc                 ,    |                      d          S )Nz%H:%Mr   r   s    r   r   r     s    ajj11 r(   datetime64_hourformatterint64float64Int64r   booleanrZ   r[   r   )r&   r   Isr[   r\   oc                     dS )N	formattedr$   r   s    r   r   r     s    { r(   various_dtypes_formattedc                 b    t          ||          }|                     |          }||k    sJ d S )N
formattersr   )r9   r   r   r   rS   s        r   test_to_html_formattersr      s>    \ Xx00HZZ:Z..FXr(   c                  L   t          g dg dt          j                            d                              d          t          j                            d                              d          d          } |                     dgdg                                           d S )	N)rZ   rZ   r[   r[   rZ   )1er   2èmer   r   r   r!   r   )   clé1   clé2u	   données1u	   données2r   r   r-   r^   )r   r0   r1   r2   r3   pivot_table_repr_html_r9   s    r   test_to_html_regression_GH6098r      s    	...<<<..q11AA!DD..q11AA!DD		
 	

 
B NN'WIN66BBDDDDDr(   c                     t          j        ddd          }t          |t          d                    }|                    dd          }t          | d	          }||k    sJ d S )
N20010101Dr.   )startfreqperiodsr      r   )r   max_colstruncate)pd
date_ranger   r4   rO   r   )r   r-   r9   rS   r   s        r   test_to_html_truncater   .  sk    M
bAAAE	b			2	2	2BZZQZ//FXz22HXr(   rF   c                    t          g d          }d}t          j        t          t	          j        |                    |                               5  |                    dj        g| z             d d d            d S # 1 swxY w Y   d S )NrY   r]   zAFormatters length({}) should match DataFrame number of columns(3)r_   z{}r   )r   rg   rh   ri   rK   r   r   rO   )rF   r9   rk   s      r   'test_html_invalid_formatters_arg_raisesr   6  s     
???	+	+	+B
MC	z3::d3C3C)D)D	E	E	E 4 4


t{md2
3334 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4s    BB	Bc                     ddddddddd	dd
dddddddddg}t          |          }d }||d d g}|                    |d          }t          | d          }||k    sJ d S )NrC   r!   rD   r   )r*   r+   Cr   r   r   r   r   	   r                     c                 &    t          |           dz   S )N_mod)rR   r   s    r   r   z1test_to_html_truncate_formatter.<locals>.<lambda>I  s    CFFVO r(   )r   r   truncate_formatterr   )r   r   r9   fmtr   rS   r   s          r   test_to_html_truncate_formatterr   ?  s     aaa((aaa((br++r,,	D 
4B
#
#CsD$'JZZ:Z::FX';<<HXr(   zsparsify,expected)Ttruncate_multi_index)Ftruncate_multi_index_sparse_offc                     g dg dg}t          ||          }|                    dd|           }t          ||          }||k    sJ d S )N)barr  bazr  rc   rc   quxr  )onetwor  r  r  r  r  r  r   r   )r   r   sparsifyr   )r	  r   r   arraysr9   rS   s         r   !test_to_html_truncate_multi_indexr  P  so     	A@@@@@F 
	0	0	0BZZQZBBFXx00HXr(   zoption,result,expectedc                 *    |                                  S r<   rO   r   s    r   r   r   b  s    "**,, r(   1c                 .    |                      d          S )Nr!   )borderr  r   s    r   r   r   c  s    "**A*.. r(   c                 *    |                                  S r<   r  r   s    r   r   r   d  s    rzz|| r(   c                 *    |                                  S r<   )r   r   s    r   r   r   e  s    r~~'' r(   c                     t          dddgi          }|  ||          }n3t          d|           5   ||          }d d d            n# 1 swxY w Y   d| d}||v sJ d S )Nr*   rC   r!   zdisplay.html.borderzborder="")r   r	   )optionrS   r   r9   s       r   test_to_html_borderr  _  s     
C!Q=	!	!B  16:: 	  	 VBZZF	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 %(%%%Hvs   A

AAr:   )indirectc                    | }|                                 }t                      }|                     |          }|J |                                |k    sJ t          |t                    sJ |                     ddgd           |                     ddgdd i           |                     ddgt                     |                     ddgd	t          
           d S )N)bufr+   r*      )r^   r>   c                 
    | dS )Nz.1fr$   r   s    r   r   ztest_to_html.<locals>.<lambda>  s
    jj r(   )r^   r   )r^   float_formatr   )r^   r>   r  )rO   r   getvalue
isinstancerR   )r:   r9   r   r  retvals        r   test_to_htmlr   s  s     
B


A
**CZZCZ  F<<>>QaJJSzRJ000JJSzs4H4H.IJJJJJJSzJ444JJSzRcJBBBBBr(   c                 2    | }|                                  d S r<   r  )r:   r9   s     r   test_to_html_empty_dataframer"    s    	BJJLLLLLr(   c                     | }|                                 }|                    d          }|                     |           |                                }||k    sJ d S )Nr   )rO   r   r   )r:   tmpdirr9   r   r   rS   s         r   test_to_html_filenamer%    s[    	Bzz||H;;{##DJJtYY[[FXr(   c                      t          dt          j                            d                              d          i          } |                     d          }||                    d                   }d|vsJ d S )NrN   r!   r   F)	bold_rowsz</thead>z<strong)r   r0   r1   r2   r3   rO   find)r9   r   rS   s      r   test_to_html_with_no_boldr)    sr    	C..q11AA!DDE	F	FB:::&&D$))J''(FF""""""r(   c                 @    |                      dg          }d|vsJ d S )Nr*   r]   z
<th>B</th>r  )r   rS   s     r   test_to_html_columns_argr+    s1      # //Fv%%%%%%r(   zcolumns,justify,expectedCL0CL1r   leftmultiindex_1rightmultiindex_2c                     t          t          d          t          d          g|           }|                    |          }t          ||          }||k    sJ d S )Nr   efghr]   r=   )r   listrO   r   )r^   r=   r   r   r9   rS   s         r   test_to_html_multiindexr6    s`    & 
DLL$v,,/	A	A	ABZZZ((FXx00HXr(   c                     t          g dg dg ddg d          }|                    |           }t          |d                              |           }||k    sJ d S )N)r   i0u  r!   )rC   r!   ip )ih r   rC   r*   r+   r   r]   r4  r=   )r   rO   r   r   )r=   r   r9   rS   r   s        r   test_to_html_justifyr9    s    	mm---nnnEE
 
 
B ZZZ((FXy11888IIHXr(   r=   )zsuper-rightz
small-left	noinherittinypandasc                     t                      }d}t          j        t          |          5  |                    |            d d d            d S # 1 swxY w Y   d S )Nz#Invalid value for justify parameterr_   r4  )r   rg   rh   ri   rO   )r=   r9   rk   s      r   test_to_html_invalid_justifyr>    s    
 
B
/C	z	-	-	- $ $


7
###$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $   AAAc                   f    e Zd Zej        d             Zej        d             Zd Zd Zd Z	d Z
dS )TestHTMLIndexc                 `    g d}t          g dg dddt          j        gdg d|          }|S )Nrc   r  r  rC   r!   rD   )g333333?g333333@gffffff@r  r  r8  r   )r   r0   r6   )selfr-   r9   s      r   r9   zTestHTMLIndex.df  sP    %%%))///rv8NOO#OO
 
 

 	r(   c                 "    t          |d          S )Nindex_2)r   )rE  r   s     r   expected_without_indexz$TestHTMLIndex.expected_without_index  s    Xy111r(   c                     t          |d          }|                                |k    sJ |                    d          }|j        D ]}||vsJ 	||k    sJ d S )Nindex_1Fr,   )r   rO   r-   )rE  r   r9   rH  expected_with_indexrS   r&   s          r   $test_to_html_flat_index_without_namez2TestHTMLIndex.test_to_html_flat_index_without_name  s}     ,Hi@@zz||22222%(( 	# 	#AF?""""///////r(   c                     t          g dd          |_        t          |d          }|                                |k    sJ |                    d          |k    sJ d S )NrC  r   r   index_3Fr,   )r   r-   r   rO   )rE  r   r9   rH  rK  s        r   !test_to_html_flat_index_with_namez/TestHTMLIndex.test_to_html_flat_index_with_name  sm    ...U;;;+Hi@@zz||22222zzz&&*@@@@@@@r(   c                     g d}t          j        |          |_        t          |d          }|                                |k    sJ |                    d          }dD ]}||vsJ 	||k    sJ d S )N)rc   car)rc   bike)r  rR  index_4Fr,   )rc   r  rR  rS  r   from_tuplesr-   r   rO   )rE  r   r9   rH  tuplesrK  rS   r&   s           r   %test_to_html_multiindex_without_namesz3TestHTMLIndex.test_to_html_multiindex_without_names  s     CBB)&11+Hi@@zz||22222%((. 	# 	#AF?""""///////r(   c                     g d}t          j        |ddg          |_        t          |d          }|                                |k    sJ |                    d          |k    sJ d S )NrQ  idx1idx2r   index_5Fr,   rU  )rE  r   r9   rH  rW  rK  s         r   "test_to_html_multiindex_with_namesz0TestHTMLIndex.test_to_html_multiindex_with_names   sy    BBB)&8HIII+Hi@@zz||22222zzz&&*@@@@@@@r(   N)__name__
__module____qualname__rg   fixturer9   rH  rL  rO  rX  r]  r$   r(   r   rA  rA    s        ^  ^ ^2 2 ^2	0 	0 	0A A A0 0 0A A A A Ar(   rA  classeszsortable draggablesortable	draggablec                 ~    t                      }t          |d          }|                    |           }||k    sJ d S )Nwith_classesrb  r   r   rO   )rb  r   r9   r   rS   s        r   test_to_html_with_classesri    sD    	BX~66HZZZ((FXr(   c                     t          dg di          }|                    dd          }t          | d          }||k    sJ d S )Nr*   )rC   r!   rD   r   FrC   )r-   r   gh14998_expected_outputr   r   s       r   test_to_html_no_index_max_rowsrl    sT    	C&	'	'BZZeaZ00FX'@AAHXr(   c                    t          g dg dgg dg dgddg          }t          dgg dgg d	g dgd d
g          }t          j        dt          j        t          j        gt          j        dt          j        gt          j        t          j        dgg          }t	          |||          }|                    d          }t          | d          }||k    sJ d S )N)babbbc)cacbcc)r   rC   r!   r[   r\   )levelscodesr   rf   )aaabac)r   r   r   rZ   g      ?g       @g      @r!   )r   gh6131_expected_output)r   r0   arrayr6   r   rO   r   )r   r-   r^   r   r9   rS   r   s          r    test_to_html_multiindex_max_colsr{    s   """$6$6$67yy)))$Cj  E
 )))*yy)))$Sk  G
 8
rvrv	bf 57LM D 
4	(	(BZZZ##FX'?@@HXr(   c           	      t   t          t          d          t          dd          t          dd          t          dd          d          }t          j        ddgddgg          |_        t          j        ddgg dg          |_        |                    d	
          }t          | d          }||k    sJ d S )Nr   r.   r   rZ   r[   r\   rf   )r\   rf   er   gFr,   gh22579_expected_output)r   r4   r   r   r^   r-   rO   r   r   s       r   &test_to_html_multi_indexes_index_falser  -  s    	BiieBmm%B--eBPRmmTT
 
B (3*sCj)ABBBJ&c
4M4M4M'NOOBHZZeZ$$FX'@AAHXr(   index_namesheaderr-   zcolumn_index, column_typeunnamed_standardcolumns.namer   named_standardr\   unnamed_multizcolumns.name.0zcolumns.name.1named_multizrow_index, row_typez
index.namezindex.name.0zindex.name.1c                 V   t          t          j        dt                    ||          }|                    |||          }	|sd}n|s|                    d          rd|z   }|sd}n|s|                    d          rd|z   }d|z   d	z   |z   }
t          | |
          }|	|k    sJ d S )
N)r!   r!   r   r   )r-   r  r  nonenamedunindex_	_columns_)r   r0   zerosintrO   
startswithr   r   	row_indexrow_typecolumn_indexcolumn_typer-   r  r  r9   rS   r   r   s               r   test_to_html_basic_alignmentr  9  s    F 
28F#...i	V	V	VBZZeFZLLF # #X0099 #(? ) )[33G<< )[(("[0;>HXx00HXr(   r   rf   r}  r   )rc   Nr  c                 t   t          t          j        d                              dd          ||          }|                    dd|||          }	|sd}n|s|                    d          rd|z   }|sd}n|s|                    d          rd|z   }d	|z   d
z   |z   }
t          | |
          }|	|k    sJ d S )N@   r   r   r   )r   r   r-   r  r  r  r  r  trunc_df_index_r  )r   r0   r5   reshaperO   r  r   r  s               r   &test_to_html_alignment_with_truncationr  n  s    R 
29R==((A..i	V	V	VBZZQeF   F  # #X0099 #(? ) )[33G<< )[( 8+k9KGHXx00HXr(   c                     ddgddgddgddgd	d
gg}t          |          }|                    d|          }t          | d          }||k    sJ d S )N"9?~,?AGZQ?&OY@u!V?5#E8N
g?a_ÿ4iSulL1AG?r   )r   r-   gh15019_expected_outputr   )r   r-   r   r9   rS   r   s         r   ,test_to_html_truncation_index_false_max_rowsr    s|     
8	8	9	9	HD 
4BZZ%Z00FX'@AAHXr(   z col_index_named, expected_output)Fgh22783_expected_output)Tgh22783_named_columns_indexc                     g dg dg}t          |          }|r|j                            dd           |                    d|          }t	          | |          }||k    sJ d S )N)r  r  r  r  r  )r  r  r  r  r  r  T)inplacer   )r   r-   )r   r^   renamerO   r   )r   r-   col_index_namedexpected_outputr   r9   rS   r   s           r   ,test_to_html_truncation_index_false_max_colsr    s     	;::===D 
4B 8

.$777ZZ%Z00FX77HXr(   notebookc                     t          dg di          }|                    |           }| rd|v sJ d|v sJ d|v sJ d S d|vsJ d|vsJ d|vsJ d S )Nr*   rD  r  ztbody tr th:only-of-typezvertical-align: middle;zthead thr   rO   )r  r9   rS   s      r   test_to_html_notebook_has_styler    s    	C#	$	$BZZZ**F ()V3333(F2222V######)7777(6666''''''r(   c                      t          dddgit          ddgd                    } |                     d	
          }d|vsJ d S )Nr*   rC   r!   rZ   r[   myindexnamer   r,   F)r  r   r   rO   r9   rS   s     r   #test_to_html_with_index_names_falser    sW    	C!Q=sCj}(M(M(M	N	N	NBZZEZ**F&&&&&&r(   c                      t          dddgit          ddgd                    } |                     d	d
          }d|v sJ d S )Nr*   rC   r!   rZ   r[   r  r   r,   FTEST_ID)r  table_idz id="TEST_ID"r  r  s     r   test_to_html_with_idr    sY    	C!Q=sCj}(M(M(M	N	N	NBZZEIZ>>Ff$$$$$$r(   zvalue,float_format,expected)gvöE?z%.3fgh21625_expected_output)g      Y@z%.0fgh22270_expected_outputc                     t          d| gi          }t          ||          }|                    |          }||k    sJ d S )NrN   r  rh  )valuer  r   r   r9   rS   s         r   (test_to_html_float_format_no_fixed_widthr    sP     
C%>	"	"BXx00HZZ\Z22FXr(   zrender_links,expected)Trender_links_true)Frender_links_falsec                     g dg dg}t          |t          g dt                              }|                    |           }t	          ||          }||k    sJ d S )N)r   z$https://pandas.pydata.org/?q1=a&q2=b
pydata.org)r   zwww.pydata.orgr  )rc   r  Nr   r]   )render_links)r   r   objectrO   r   )r  r   r   r   r9   rS   s         r   test_to_html_render_linksr    s     	BAA+++D 
4';';';6!J!J!J	K	K	KBZZ\Z22FXx00HXr(   zmethod,expectedrO   c                     t           S r<   lorem_ipsumr   s    r   r   r     s    k r(   r   c                 ,    t           d | dz
           dz   S )Nr   ...r  r   s    r   r   r     s    +gAg"6"> r(   max_colwidth)r   r.   r@   r   c                     t          t          g          }t          d|          5   t          ||                       }d d d            n# 1 swxY w Y    ||          }||v sJ d S )Nzdisplay.max_colwidth)r   r  r	   getattr)methodr   r  r9   rS   s        r    test_ignore_display_max_colwidthr    s     
K=	!	!B	.	=	= ' '$V$$&&' ' ' ' ' ' ' ' ' ' ' ' ' ' 'x%%Hvs   AAAc                     t                      }d}t          j        t          |          5  |                    |            d d d            d S # 1 swxY w Y   d S )Nz(classes must be a string, list, or tupler_   rg  )r   rg   rh   	TypeErrorrO   )rb  r9   rk   s      r   !test_to_html_invalid_classes_typer    s     
B
4C	y	,	,	, $ $


7
###$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $r?  c                      t          dgdg          } t          dd          5  |                     d          }|                     d          }d d d            n# 1 swxY w Y   d	|v sJ d
|v sJ d S )NrC   g^)?r]   zdisplay.precisionrD   Fr  Tz0.55555z0.556)r   r	   rO   )r9   r   r  s      r   !test_to_html_round_column_headersr  (  s    	A3		*	*	*B	+Q	/	/ - -zz5z))::t:,,- - - - - - - - - - - - - - - hs   -AA!$A!unit)100pxz10%5em   c                    t          t          j                            d                              d                    }|                    |           }|                    d          d         }d |                    d          D             }t          | t                    rt          |           d	z   } |D ]}d
|  d}||v sJ d S )Nr!   rB   rE   rG   tbodyr   c                 <    g | ]}t          j        d |          |S rI   rJ   rM   s     r   r'   z5test_to_html_with_col_space_units.<locals>.<listcomp>8  rq   r(   rr   pxz<th style="min-width: z;">)	r   r0   r1   r2   rO   rP   r  r  rR   )r  r9   rS   rT   rU   r   s         r   !test_to_html_with_col_space_unitsr  2  s     
29((++222??	@	@BZZ$Z''F\\'""1%FGGv||D))GGGD$  4yy4  5D5551} r(   c                       e Zd Zd Zej                            dg d          d             Zd Zd Z	d Z
d Zd	 Zd
 Zd Zd Zd Zd Zd ZdS )TestReprHTMLc                 .   t          dt          d          i          }|                                }t          |d          }||k    sJ t          dt          d          i          }|                                }t          |d          }||k    sJ d S )NrZ   r.   (html_repr_min_rows_default_no_truncation=   $html_repr_min_rows_default_truncated)r   r4   r   r   )rE  r   r9   rS   r   s        r   test_html_repr_min_rows_defaultz,TestReprHTML.test_html_repr_min_rows_defaultA  s     U2YY'((!! +UVV!!!! U2YY'((!! +QRR!!!!!!r(   zmax_rows,min_rows,expected))r   r    html_repr_max_rows_10_min_rows_4)r   N#html_repr_max_rows_12_min_rows_None)r   r   !html_repr_max_rows_10_min_rows_12)Nr   #html_repr_max_rows_None_min_rows_12c                     t          dt          d          i          }t          ||          }t          d|d|          5  |                                }d d d            n# 1 swxY w Y   ||k    sJ d S )NrZ   r  display.max_rowszdisplay.min_rows)r   r4   r   r	   r   )rE  r   r   min_rowsr   r9   rS   s          r   test_html_repr_min_rowsz$TestReprHTML.test_html_repr_min_rowsP  s      U2YY'(( 844.:LhWW 	& 	&^^%%F	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&!!!!!!s   A""A&)A&c                 n    t          j        d          }|                    |d          }|j        rJ d S )Nz        from pandas import DataFrame
        df = DataFrame({"A": [1, 2]})
        df._repr_html_()

        cfg = get_ipython().config
        cfg['IPKernelApp']['parent_appname']
        df._repr_html_()
        T)silent)textwrapdedentrun_cellerror_in_exec)rE  ipcoderS   s       r   test_repr_html_ipython_configz*TestReprHTML.test_repr_html_ipython_configf  sD    

 

 T$//''''''r(   c                 Z   d}d}|dz   |dz
  c}t          fdt          j        |          D                       }d|                                vsJ t	          dd          5  d|                                v sJ 	 d d d            n# 1 swxY w Y   |dz
  |dz   c}t          fdt          j        |          D                       }d	|                                vsJ t	          ddd
|          5  d|                                v sJ 	 d d d            d S # 1 swxY w Y   d S )Nrb   r.   rC   c                 B    i | ]}|t          j        d d z             S rC   r0   r5   r%   krU   s     r   
<dictcomp>z4TestReprHTML.test_info_repr_html.<locals>.<dictcomp>z  +    EEE129QA..EEEr(   z	&lt;classzdisplay.large_reprinfoc                 B    i | ]}|t          j        d d z             S r  r  r   s     r   r  z4TestReprHTML.test_info_repr_html.<locals>.<dictcomp>  r  r(   z<classdisplay.max_columns)r   r0   r5   r   r	   )rE  r   r   wr9   rU   s        @r   test_info_repr_htmlz TestReprHTML.test_info_repr_htmlu  s   !|X\1EEEE	!EEEFF2>>#3#333330&99 	4 	42>>#3#333333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 !|X\1EEEE	!EEEFFr~~////// &*?
 
 	3 	3 ".."2"222222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3s$   &BBB9D  D$'D$c                     |}d }|                                 }|J t          dddd          5  |                                 }d d d            n# 1 swxY w Y   d|v sJ d S )Nc                      ddddiiiS )Nconfig	KernelAppparent_appnamezipython-qtconsoler$   r$   r(   r   get_ipythonz?TestReprHTML.test_fake_qtconsole_repr_html.<locals>.get_ipython  s    {-=?R,STUUr(   r  r   r  r!   class)r   r	   )rE  r   r9   r  repstrs        r   test_fake_qtconsole_repr_htmlz*TestReprHTML.test_fake_qtconsole_repr_html  s    	V 	V 	V !!!!!.3H!LL 	& 	&^^%%F	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& &      s   AAAc                 V   |}|                                  t          dddd          5  |                                  d d d            n# 1 swxY w Y   t          dd          5  |                                  d d d            n# 1 swxY w Y   t          ddgddgg          }t          d	d
          5  d|                                 v sJ 	 d d d            n# 1 swxY w Y   t          d	d          5  d|                                 vsJ 	 d d d            d S # 1 swxY w Y   d S )Nr  rC   r  zdisplay.notebook_repr_htmlFr!   rD   r   zdisplay.show_dimensionsTz2 rows)r   r	   r   )rE  r   r9   s      r   test_repr_htmlzTestReprHTML.test_repr_html  s=   
.3H!LL 	 	NN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 8%@@ 	 	NN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 AA'((5t<< 	0 	0r~~///////	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	05u== 	4 	42>>#3#333333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4sG   A

AA%BB
B
6CC #C 7DD"%D"c                     t          ddgddgg          }d|                                vsJ t          dd          5  d|                                v sJ 	 d d d            d S # 1 swxY w Y   d S )NrC   r!   rD   r   tex2jax_ignorezdisplay.html.use_mathjaxF)r   r   r	   )rE  r9   s     r   test_repr_html_mathjaxz#TestReprHTML.test_repr_html_mathjax  s    AA'((r~~'7'777776>> 	8 	8#r~~'7'777777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8s   A%%A),A)c                    d}t          dg|dz
  z  gdz            }t          dddd          5  d|                                vsJ 	 d d d            n# 1 swxY w Y   t          dg|dz   z  gdz            }t          dddd          5  d|                                v sJ 	 d d d            d S # 1 swxY w Y   d S )	Nr.   aaaaaaaaaaaaaaaaaaaaaaaaarC   r   r  rb   r  r  )r   r	   r   )rE  r   r9   wide_dfs       r   test_repr_html_widez TestReprHTML.test_repr_html_wide  sl   
hl34r9::.4I2NN 	1 	1 0 000000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 hZ8a<89B>??.4I2NN 	2 	2G//1111111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2s#   AAAB33B7:B7c                 (   d}t          j        t          j        |dz            ddggddg          }t	          dgt          |          z  gd	z  |
          }|                                }d|vsJ t          j        t          j        d|dz  z             ddgfddg          }t	          dgt          |          z  gd	z  |
          }t          dddd          5  d|                                v sJ 	 d d d            d S # 1 swxY w Y   d S )Nr.   r!   rc   r  firstsecondr   r  r   r]   r  rC   r  rb   r  )r   r   r0   r5   r   rQ   r   r	   )rE  r   mcolsr9   reg_reprs        r   #test_repr_html_wide_multiindex_colsz0TestReprHTML.test_repr_html_wide_multiindex_cols  s   'Yx1}%%u~6w>Q
 
 
 
SZZ/025uEEE>>##H$$$$'YqHM*++eU^<WhDW
 
 
 
SZZ/025uEEE.4I2NN 	- 	-BNN,,,,,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-s    DDDc           	      n   t          dd          5  t          d          }|dz
  }t          t          j        dd|z             t          j        dd|z             d          }|                                }d|vsJ t          d|dz  z             |v sJ |dz   }t          t          j        dd|z             t          j        dd|z             d          }|                                }d|v sJ t          d|dz  z             |vsJ | d|v sJ d	|v sJ 	 d d d            d S # 1 swxY w Y   d S )
Nr  rb   rC   )   r)   ..r!    rows 	2 columns)r	   r   r   r0   r5   r   rR   rE  r   rU   r9   r  	long_reprs         r   test_repr_html_longz TestReprHTML.test_repr_html_long  s   .33 	, 	,!"455H1A1a!e!4!429Ra;P;PQQRRB~~''Hx''''rHM)**h66661A1a!e!4!429Ra;P;PQQRRB((I9$$$$rHM)**);;;;<<<9,,,,)+++++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,s   DD**D.1D.c           
         t          dd          5  t          d          }|dz
  }t          t          j        dd|          t          j        dd|z             t          j        dd|z             d                              d          }|                                }d	|vsJ d
d|z    d|v sJ |dz   }t          t          j        dd|          t          j        dd|z             t          j        dd|z             d                              d          }|                                }d	|v sJ d|vsJ | d|v sJ d|v sJ 	 d d d            d S # 1 swxY w Y   d S )Nr  rb   rC   ir   r"  )r   r*   r+   r   r#  z<td>ra   z</td>z<td>31</td>r$  r%  )r	   r   r   r0   linspacer5   r{   r   r&  s         r   test_repr_html_floatz!TestReprHTML.test_repr_html_float  s   .33 	, 	,!"455H1A;sB221a!e,,2rAv..   i  ~~''Hx'''''"q&'''833331A;sB221a!e,,2rAv..   i  ((I9$$$$ 	1111<<<9,,,,)+++++5	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,s   D<EE"Ec                 8   d}|dz  }t          t          j        t          j        |          ddg                    }t          j        |ddg          }t          t          j        	                    d          
                    |dz  df          |dd	g
          }t          dddd          5  |                                }d d d            n# 1 swxY w Y   d|vsJ t          t          j        t          j        |dz             ddg                    }t          j        |ddg          }t          t          j        	                    d          
                    |dz   dz  df          |dd	g
          }|                                }d|v sJ d S )Nrb   r!   rc   r  r  r  r   r*   r+   r   r  r  r.   r  rC   )r5  	itertoolsproductr0   r5   r   rV  r   r1   r2   r3   r	   r   )rE  r   max_L1rW  r   r9   r  r'  s           r   test_repr_html_long_multiindexz+TestReprHTML.test_repr_html_long_multiindex  s   Qi'	&(9(9E5>JJKK$VGX3FGGGI!!!$$44fqj!_EE#J
 
 

 .4I2NN 	( 	(~~''H	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(H$$$$i'	&1*(=(=u~NNOO$VGX3FGGGI!!!$$44vzQ6F5JKK#J
 
 

 NN$$		!!!!!!s   1CCCc                    d}d}|dz
  |dz
  c}t          fdt          j        |          D                       }t          dddd          5  d|                                vsJ 	 d d d            n# 1 swxY w Y   |dz   |dz   c}t          fdt          j        |          D                       }t          dddd          5  d|                                v sJ 	 d d d            d S # 1 swxY w Y   d S )	Nr.   rb   rC   c                 B    i | ]}|t          j        d d z             S r  r  r   s     r   r  z=TestReprHTML.test_repr_html_long_and_wide.<locals>.<dictcomp>  r  r(   r  r  r  c                 B    i | ]}|t          j        d d z             S r  r  r   s     r   r  z=TestReprHTML.test_repr_html_long_and_wide.<locals>.<dictcomp>  r  r(   )r   r0   r5   r	   r   )rE  r   r   r  r9   rU   s        @r   test_repr_html_long_and_widez)TestReprHTML.test_repr_html_long_and_wide  s   !|X\1EEEE	!EEEFF.4I2NN 	1 	1 0 000000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 !|X\1EEEE	!EEEFF.4I2NN 	- 	-BNN,,,,,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-s$   A66A:=A:C22C69C6N)r^  r_  r`  r  rg   markparametrizer  r  r  r  r  r  r  r   r(  r+  r0  r4  r$   r(   r   r  r  @  s
       " " " [$		
 		
 		
 " " "( ( (3 3 3&! ! !4 4 4 8 8 82 2 2- - -", , ,", , ,:" " "2- - - - -r(   r  c                 |    | }d|j         _        |                                 |j                                         d S )Nrc   )r^   r   rO   T)/multiindex_year_month_day_dataframe_random_dataymds     r   test_to_html_multilevelr;    s1    
9CCKKKMMMEMMOOOOOr(   na_repNaNTedc                     t          ddgdd ggddg          }|                    | dj                  }t          |d          }|                    | 	          }||k    sJ d S )
Nr*   g(\?GroupDatar]   z{:.2f})r<  r  gh13828_expected_outputr<  )r   rO   r   r   )r<  r   r9   rS   r   s        r   $test_to_html_na_rep_and_float_formatrD  &  s     
&M$K	
 &!
 
 
B ZZvHOZDDFX'@AAHf--HXr(   c                     t          dg ddg          }|                    d          }t          | d          }||k    sJ d S )NrC   rD  ro   -rC  gh47103_expected_outputr   r   s       r   #test_to_html_na_rep_non_scalar_datarH  6  sX    	!))),,-	.	.BZZsZ##FX'@AAHXr(   c                     t          dddgi          }|                    d           }t          | d          }||k    sJ d S )NrN   g     @@test)r   c                 
    | dS )Nz,.0fr$   r   s    r   r   z6test_to_html_float_format_object_col.<locals>.<lambda>A  s
    !{{ r(   r  gh40024_expected_outputr   r   s       r   $test_to_html_float_format_object_colrM  >  sZ    	vv./	0	0	0BZZ%:%:Z;;FX'@AAHXr(   c                      t          ddgg          } t          j        ddg          | _        |                     d          }d}||k    sJ d S )NrC   r!   )rC   rC   )r!   rC   r   rG   a  <table border="1" class="dataframe">
  <thead>
    <tr>
      <th style="min-width: 100px;"></th>
      <th style="min-width: 100px;">1</th>
      <th style="min-width: 100px;">2</th>
    </tr>
    <tr>
      <th style="min-width: 100px;"></th>
      <th style="min-width: 100px;">1</th>
      <th style="min-width: 100px;">1</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>1</td>
      <td>2</td>
    </tr>
  </tbody>
</table>)r   r   rV  r^   rO   r9   rS   r   s      r   )test_to_html_multiindex_col_with_colspacerP  F  sb    	QF8		B'(899BJZZ#Z&&F	 . Xr(   c                  n    t          dgdgd          } |                     d          }d}||k    sJ d S )NrC   r!   )ro   r[   r   rG   aP  <table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th style="min-width: 100px;"></th>
      <th style="min-width: 100px;">(a, b)</th>
      <th style="min-width: 100px;">b</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>1</td>
      <td>2</td>
    </tr>
  </tbody>
</table>r  rO  s      r   $test_to_html_tuple_col_with_colspacerR  e  sQ    	1#..	/	/BZZ#Z&&F	 $ Xr(   c                      t          dt          j        g d          i          } |                     d          }d}||k    sJ d S )NrN   complexr   r   rG   z<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th style="min-width: 100px;"></th>
      <th style="min-width: 100px;">x</th>
    </tr>
  </thead>
  <tbody>
  </tbody>
</table>)r   r0   rz  rO   rO  s      r    test_to_html_empty_complex_arrayrU  ~  sY    	C"I6667	8	8BZZ#Z&&F		  Xr(   c                      t          dg di          } d}t          j        t          |          5  |                     d d            d d d            d S # 1 swxY w Y   d S )NrZ   rD  zmStarting with pandas version 3.0 all arguments of to_html except for the argument 'buf' will be keyword-only.r_   )r   tmassert_produces_warningFutureWarningrO   rj   s     r   !test_to_html_pos_args_deprecationrZ    s    	C#	$	$B	0  
	#M	=	=	=  


4                 s   AAA)^r   r   r   r-  rK   r  numpyr0   rg   r<  r   r   r   r   r   r	   pandas._testing_testingrW  pandas.io.formats.formatr   r   r   r  r   ra  r:   VALID_JUSTIFY_PARAMETERSr=   r5  r6  rV   rl   ru   r|   r5   r   r   r   r   r   r   r   r  to_datetimeSeriesCategoricalDtyper   r   r   r   r   r  r  r   r"  r%  r)  r+  r   repeatmodr4   r6  r9  r>  rA  ri  rl  r{  r  r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r;  rD  rH  rM  rP  rR  rU  rZ  r$   r(   r   <module>re     s                   				                              & & & & & & & & & & & &+   , )***  +*$ s3444  54 r2h//	# 	# 0/	#= = =(0 0 0$# # # 	Hibioo.	/	/=	C($	%	%{3   1 1 1   	^Y'
E	M+<=    )D%=99
 
 :9
       ))     IQ!Q!Q!Q0udm6:::bill  
 --.	
 Ix((4A"6"6q!8L8L!MNOO445'	
 I>2>'8    112&
	
 I"Aq6999"Aq6;;;"Aq6999"Aq6:::"D%=	BBB"C:5HR5H#s5T5TUUU"As86::: 
 
 #"#a'&	
5), ,Z [, ,ZE E E   !Q((4 4 )(4  " #%OP  	  	&&,	..4	
##S)	
''-	    ,wi$GGC C HGC& ,wi$GG  HG
  # # #& & &
  #J"1$$Q''a!)<)<=en   	
 #J"IBIaLL&"&q12E2E#FGG	
 $ % $   KKK $ $ $4A 4A 4A 4A 4A 4A 4A 4An %9J;T$UVV  WV    *	 	 	 u66D%=114-00	1v*+	1vN	+	+	+-=>	 	 3%#s!4	5	5G#J#c
#,<>N+O   		
	
  	1v*+	1vL	)	)	)+;<	 	 3%#s!4	5	5G#J#c
#NN+K   		
	
     10 21 76>, u66D%=114-00	yry||		01	yry||.	1	1	13CD#J#c3Z#sc3Z$HII	

 $J#sc3Z#s4<P<P<P   		
 " 	yry||		01	yry||,	/	/	/1AB#J#c3Z#sc3Z$HII	

 $J#sc3Z#s4<P<P<P   		
 " # #  10 21 76J0 5!*--  .- 5!*--&')NO  	  .-
  dE]33( ( 43(' ' '% % % !42     "?@ 
 
	 
 	))*	>>?  ):):):;;  <;  T1I..$ $ /.$   !=!=!=>>
 
 ?>
[- [- [- [- [- [- [- [-|   E5>22  32      >  2  &    r(   