Current File : //usr/local/apps/python3/lib/python3.11/test/__pycache__/test_sax.cpython-311.opt-2.pyc
�

�Ke�����ddlmZmZmZmZmZddlZddlmZ	e��n#e$rejd���wxYwddl	m
Z
mZmZm
Z
mZmZddlmZddlmZmZmZddlmZmZmZdd	lmZmZddlZddlZddl Z ddl!Z!dd
l"m#Z#ddl$Z%ddl&m'Z'ddl&m(Z(dd
l)m*Z*m+Z+e(dd���Z,e(dd���Z-	e,�.d��e-�.d��n#e/$rejd���wxYwdZ0ej1j2s8	e'j3�.e!j4����n#e5e6f$rdZ0YnwxYwej7e0d��Z8dZ9Gd�dej:��Z;dAd�Z<dBd�Z=dBd�Z>Gd�dej:��Z?Gd �d!ej:��Z@Gd"�d#ej:��ZAGd$�d%ej:��ZBGd&�d'��ZCGd(�d)eCej:��ZDGd*�d+eCej:��ZEGd,�d-eE��ZFGd.�d/eCej:��ZGGd0�d1eCej:��ZHd2ZIGd3�d4ej:��ZJeKe-d5��5ZLeL�M��ZNddd��n#1swxYwYGd6�d7e;��ZOGd8�d9ej:��ZPGd:�d;e;��ZQGd<�d=ej:��ZRGd>�d?ej:��ZSeTd@krejU��dSdS)C�)�make_parser�ContentHandler�SAXException�SAXReaderNotAvailable�SAXParseExceptionN)�mockzno XML parsers available)�XMLGenerator�escape�unescape�	quoteattr�
XMLFilterBase�prepare_input_source)�
create_parser)�feature_namespaces�feature_external_ges�LexicalHandler)�InputSource�AttributesImpl�AttributesNSImpl)�BytesIO�StringIO)�URLError)�	os_helper)�findfile)�FakePath�TESTFNztest.xml�xmltestdata)�subdirztest.xml.out�utf-8z!filename is not encodable to utf8TFz$Requires non-ascii filenames supportz%http://www.python.org/xml-ns/saxtest/c� �eZdZd�Zd�Zd�ZdS)�XmlTestBasec��|�t|jd��|�t|jd��|�t|jd��|�t|jd��|�t|jd��|�|���d��|�|�	��g��|�|�
��g��|�t|��d��|�d|��|�t|�����g��|�|�d��d��|�|�dd��d��|�t|�����g��|�t|�����g��dS)N�attrr�attrs�)�assertRaises�KeyError�getValue�getValueByQName�getNameByQName�getQNameByName�__getitem__�assertEqual�	getLength�getNames�	getQNames�len�assertNotIn�list�keys�get�items�values��selfr$s  �7/usr/local/apps/python3/lib/python3.11/test/test_sax.py�verify_empty_attrszXmlTestBase.verify_empty_attrs6s������(�E�N�F�;�;�;����(�E�$9�6�B�B�B����(�E�$8�&�A�A�A����(�E�$8�&�A�A�A����(�E�$5�v�>�>�>�������*�*�A�.�.�.�������)�)�2�.�.�.�������*�*�B�/�/�/�����U���Q�'�'�'������'�'�'�����e�j�j�l�l�+�+�R�0�0�0�������7�+�+�T�2�2�2�������7�B�/�/��4�4�4�����e�k�k�m�m�,�,�b�1�1�1�����e�l�l�n�n�-�-�r�2�2�2�2�2�c���|�t|jtdf��|�t|jd��|�t|jd��|�t|jtdf��|�t|jtdf��|�|�	��d��|�|�
��g��|�|���g��|�t|��d��|�
tdf|��|�t|�����g��|�|�tdf��d��|�|�tdfd��d��|�t|�����g��|�t|�����g��dS)Nr#�ns:attrrr%)r&r'r(�ns_urir)r*r+r,r-r.r/r0r1r2r3r4r5r6r7r8s  r:�verify_empty_nsattrsz XmlTestBase.verify_empty_nsattrsGs������(�E�N�V�V�4D�E�E�E����(�E�$9�9�E�E�E����(�E�$8�)�D�D�D����(�E�$8�6�6�:J�K�K�K����(�E�$5���7G�H�H�H�������*�*�A�.�.�.�������)�)�2�.�.�.�������*�*�B�/�/�/�����U���Q�'�'�'����&�&�)�5�1�1�1�����e�j�j�l�l�+�+�R�0�0�0�������F�F�#3�4�4�d�;�;�;�������F�F�#3�R�8�8�"�=�=�=�����e�k�k�m�m�,�,�b�1�1�1�����e�l�l�n�n�-�-�r�2�2�2�2�2r<c���|�|���d��|�|���dg��|�|���dg��|�t	|��d��|�d|��|�t
|�����dg��|�|�d��d��|�|�dd��d��|�t
|�	����dg��|�t
|�
����dg��|�|�d��d��|�|�d��d��|�|�
d��d��|�|dd��|�|�d��d��dS)N�r#�valr%)r#rC)r-r.r/r0r1�assertInr3r4r5r6r7r(r)r*r+r8s  r:�verify_attrs_wattrzXmlTestBase.verify_attrs_wattrXs��������*�*�A�.�.�.�������)�)�F�8�4�4�4�������*�*�V�H�5�5�5�����U���Q�'�'�'��
�
�f�e�$�$�$�����e�j�j�l�l�+�+�f�X�6�6�6�������6�*�*�E�2�2�2�������6�2�.�.��6�6�6�����e�k�k�m�m�,�,��.?�@�@�@�����e�l�l�n�n�-�-��w�7�7�7��������/�/��7�7�7�����.�.�v�6�6��>�>�>�����-�-�f�5�5�v�>�>�>�����v���.�.�.�����-�-�f�5�5�v�>�>�>�>�>r<N)�__name__�
__module__�__qualname__r;r@rE�r<r:r!r!5sA������3�3�3�"3�3�3�"?�?�?�?�?r<r!c��|�|Sd|�d|��S�N�<?xml version="1.0" encoding="�"?>
rI)�doc�encodings  r:�xml_strrPjs#�����
��8@���#�#�F�Fr<.c�V�|dur|}t||���|d��S)N.�xmlcharrefreplace)rP�encode)rNrO�
decl_encodings   r:�	xml_bytesrUos3������ �
��3�
�&�&�-�-�h�8K�L�L�Lr<c��|dur|}ttd|d���5}|�t||����ddd��dS#1swxYwYdS)N.�wrR)rO�errors)�openr�writerP)rNrOrT�fs    r:�
make_xml_filer\ts������� �
�	
�f�c�H�5H�	I�	I�	I�-�Q�	�����]�+�+�,�,�,�-�-�-�-�-�-�-�-�-�-�-�-����-�-�-�-�-�-s�$A�A�Ac�N�eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
dS)
�	ParseTestu,<money value="$£€𐅻">$£€𐅻</money>c�8�tjt��dS�N)r�unlinkr�r9s r:�tearDownzParseTest.tearDown~s����� � � � � r<c���ddlm}t��}||t|d����|�|���t
|jd����dS)Nr)�parser)�xml.saxrerr	r-�getvaluerP�data)r9r[re�results    r:�check_parsezParseTest.check_parse�sk��!�!�!�!�!�!�����
��a��f�g�.�.�/�/�/�������*�*�G�D�I�w�,G�,G�H�H�H�H�Hr<c	�6�d}|D�]}|�tt|j|������t	|j|��ttd|���5}|�|��ddd��n#1swxYwY|�t|j����t	|j|d��ttd|���5}|�|��ddd��n#1swxYwY��dS)N��us-ascii�
iso-8859-1r�utf-16�utf-16le�utf-16be�r�rO)rjrrPrhr\rYr�r9�	encodingsrOr[s    r:�test_parse_textzParseTest.test_parse_text�s���7�	�!�	$�	$�H����X�g�d�i��&B�&B�C�C�D�D�D��$�)�X�.�.�.��f�c�H�5�5�5�
$��� � ��#�#�#�
$�
$�
$�
$�
$�
$�
$�
$�
$�
$�
$����
$�
$�
$�
$����X�d�i�0�0�1�1�1��$�)�X�t�4�4�4��f�c�H�5�5�5�
$��� � ��#�#�#�
$�
$�
$�
$�
$�
$�
$�
$�
$�
$�
$����
$�
$�
$�
$��	$�	$s$�)B�B	�B	�*D�D	�D	c
�	�d}|D�]Q}|�tt|j|������t	|j|��|�t
��t
t
d��5}|�|��ddd��n#1swxYwY|�tt|j|d������t	|j|d��|�t
��t
t
d��5}|�|��ddd��n#1swxYwY��S|�tt|jdd������t	|jdd��|�t
��t
t
d��5}|�|��ddd��n#1swxYwY|�tt|jdd������t	|jdd��|�t
��t
t
d��5}|�|��ddd��n#1swxYwY|�tt|jd������t	|jd��|�t
��t
t
d��5}|�|��ddd��n#1swxYwY|�t��5|�tt|jdd������ddd��n#1swxYwYt	|jdd��|�t��5|�t
��ddd��n#1swxYwYt
t
d��5}|�t��5|�|��ddd��n#1swxYwYddd��dS#1swxYwYdS)N�rmrrorprq�rb�	utf-8-sigrrn)	rjrrUrhr\rrYr&rrts    r:�test_parse_byteszParseTest.test_parse_bytes�s#��L�	�!�
	$�
	$�H����W�Y�t�y�(�%C�%C�D�D�E�E�E��$�)�X�.�.�.����V�$�$�$��f�d�#�#�
$�q�� � ��#�#�#�
$�
$�
$�
$�
$�
$�
$�
$�
$�
$�
$����
$�
$�
$�
$����W�Y�t�y�(�D�%I�%I�J�J�K�K�K��$�)�X�t�4�4�4����V�$�$�$��f�d�#�#�
$�q�� � ��#�#�#�
$�
$�
$�
$�
$�
$�
$�
$�
$�
$�
$����
$�
$�
$�
$��	
�����4�9�k�7�!K�!K�L�L�M�M�M��d�i��g�6�6�6����� � � �
�&�$�
�
�	 �1����Q����	 �	 �	 �	 �	 �	 �	 �	 �	 �	 �	 ����	 �	 �	 �	 ������4�9�k�4�!H�!H�I�I�J�J�J��d�i��d�3�3�3����� � � �
�&�$�
�
�	 �1����Q����	 �	 �	 �	 �	 �	 �	 �	 �	 �	 �	 ����	 �	 �	 �	 �	
�����4�9�l�!C�!C�D�D�E�E�E��d�i��.�.�.����� � � �
�&�$�
�
�	 �1����Q����	 �	 �	 �	 �	 �	 �	 �	 �	 �	 �	 ����	 �	 �	 �	 ��
�
�|�
,�
,�	P�	P����W�Y�t�y�,��%M�%M�N�N�O�O�O�	P�	P�	P�	P�	P�	P�	P�	P�	P�	P�	P����	P�	P�	P�	P��d�i��t�4�4�4�
�
�
�|�
,�
,�	%�	%����V�$�$�$�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%����	%�	%�	%�	%�
�&�$�
�
�	$�1��"�"�<�0�0�
$�
$�� � ��#�#�#�
$�
$�
$�
$�
$�
$�
$�
$�
$�
$�
$����
$�
$�
$�
$�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$����	$�	$�	$�	$�	$�	$s��B#�#B'	�*B'	�)E�E	�E	�G5�5G9�<G9�;J�J!�$J!�!M�M�
M�(7N+�+N/�2N/�&P
�
P�P�-R�Q*�R�*Q.	�.R�1Q.	�2R�R�	Rc��t|jdd��|�tt����dS)Nr)r\rhrjrrrbs r:�test_parse_path_objectz ParseTest.test_parse_path_object�s8���d�i��$�/�/�/�����&�)�)�*�*�*�*�*r<c�(�t|jdd��ttd��5}t	��}|�|��|�d��|�|��ddd��dS#1swxYwYdS)Nrnry)r\rhrYrr�
setByteStream�setEncodingrj)r9r[�inputs   r:�test_parse_InputSourcez ParseTest.test_parse_InputSource�s����d�i��t�4�4�4�
�&�$�
�
�	$�1��M�M�E�����"�"�"����l�+�+�+����U�#�#�#�		$�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$����	$�	$�	$�	$�	$�	$s�AB�B�Bc�~���t�d���fd�}tjd|���5t|jdd��|�t��5|�t��ddd��n#1swxYwY|�	�j
��ddd��dS#1swxYwYdS)Nc����|���Sr`rI)�args�builtin_open�fileobjs ��r:�	mock_openz4ParseTest.test_parse_close_source.<locals>.mock_open�s���"�l�D�)�G��Nr<zxml.sax.saxutils.open)�side_effectrn)rYr�patchr\rhr&rrjr�
assertTrue�closed)r9r�r�r�s  @@r:�test_parse_close_sourcez!ParseTest.test_parse_close_source�sM��������	�	�	�	�	�	�
�Z�/�Y�
G�
G�
G�	,�	,��$�)�\�4�8�8�8��"�"�<�0�0�
)�
)�� � ��(�(�(�
)�
)�
)�
)�
)�
)�
)�
)�
)�
)�
)����
)�
)�
)�
)��O�O�G�N�+�+�+�		,�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,����	,�	,�	,�	,�	,�	,s5�1B2�B�4B2�B	�B2�B	�B2�2B6�9B6c���ddlm}t��}||t|d����|�|���t
|jd����dS)Nr)�parseStringr)rfr�rr	r-rgrPrh)r9�sr�ris    r:�check_parseStringzParseTest.check_parseString�sk��'�'�'�'�'�'�������A�|�F�G�4�4�5�5�5�������*�*�G�D�I�w�,G�,G�H�H�H�H�Hr<c��d}|D]*}|�t|j|�����+|�|j��dS)Nrl)r�rPrh�r9rurOs   r:�test_parseString_textzParseTest.test_parseString_text�sY��7�	�!�	A�	A�H��"�"�7�4�9�h�#?�#?�@�@�@�@����t�y�)�)�)�)�)r<c�b�d}|D]S}|�t|j|����|�t|j|d�����T|�t|jdd����|�t|jdd����|�t|jd����|�t��5|�t|jdd����ddd��dS#1swxYwYdS)Nrxrzrrn)r�rUrhr&rr�s   r:�test_parseString_bytesz ParseTest.test_parseString_bytes�sr��L�	�!�	I�	I�H��"�"�9�T�Y��#A�#A�B�B�B��"�"�9�T�Y��$�#G�#G�H�H�H�H����y���K��I�I�J�J�J����y���K��F�F�G�G�G����y���L�A�A�B�B�B�
�
�
�|�
,�
,�	M�	M��"�"�9�T�Y��d�#K�#K�L�L�L�	M�	M�	M�	M�	M�	M�	M�	M�	M�	M�	M�	M����	M�	M�	M�	M�	M�	Ms�-*D$�$D(�+D(N)rFrGrHrhrcrjrvr{r}r�r�r�r�r�rIr<r:r^r^{s�������O�D�!�!�!�I�I�I�$�$�$�($�($�($�T+�+�+�$�$�$�
,�
,�
,�I�I�I�*�*�*�M�M�M�M�Mr<r^c�&�eZdZd�Zd�Zd�Zd�ZdS)�MakeParserTestc���ddlm}|��}ddlm}|��}ddlm}|��}ddlm}|��}ddlm}|��}ddlm}|��}dS)Nr�r)rfr)r9r�ps   r:�test_make_parser2z MakeParserTest.test_make_parser2�s���	(�'�'�'�'�'��K�M�M��'�'�'�'�'�'��K�M�M��'�'�'�'�'�'��K�M�M��'�'�'�'�'�'��K�M�M��'�'�'�'�'�'��K�M�M��'�'�'�'�'�'��K�M�M���r<c��tdg��td��tdh��ttdh����tddi��ttdg����dS)N�module)r��r�	frozenset�iterrbs r:�test_make_parser3z MakeParserTest.test_make_parser3	s{��	�X�J�����L�!�!�!��X�J�����I�x�j�)�)�*�*�*��X�t�$�%�%�%��D�(��$�$�%�%�%�%�%r<c��tg��tt����tt����tt����ti��tt	g����dSr`)r�tuple�setr�r�rbs r:�test_make_parser4z MakeParserTest.test_make_parser4sh���B�����E�G�G�����C�E�E�����I�K�K� � � ��B�����D��H�H�����r<c��tddg��td��tddh��ttddh����tddd���ttddg����dS)N�module1�module2)r�r�r�rbs r:�test_make_parser5z MakeParserTest.test_make_parser5s���	�Y�	�*�+�+�+��*�+�+�+��Y�	�*�+�+�+��I�y�)�4�5�5�6�6�6����6�6�7�7�7��D�)�Y�/�0�0�1�1�1�1�1r<N)rFrGrHr�r�r�r�rIr<r:r�r��sP���������"&�&�&����2�2�2�2�2r<r�c�V�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
S)�SaxutilsTestc�L�|�td��d��dS)N�Donald Duck & Co�Donald Duck &amp; Co�r-r
rbs r:�test_escape_basiczSaxutilsTest.test_escape_basic.s(������ 2�3�3�5K�L�L�L�L�Lr<c�L�|�td��d��dS)N�<Donald Duck & Co>�&lt;Donald Duck &amp; Co&gt;r�rbs r:�test_escape_allzSaxutilsTest.test_escape_all1s2������ 4�5�5�7�	9�	9�	9�	9�	9r<c�R�|�tdddi��d��dS�NuHei på deg�åz&aring;zHei p&aring; degr�rbs r:�test_escape_extrazSaxutilsTest.test_escape_extra5s8������
��y�/A�B�B�+�	-�	-�	-�	-�	-r<c�L�|�td��d��dS)Nr�r��r-rrbs r:�test_unescape_basicz SaxutilsTest.test_unescape_basic:s(������"8�9�9�;M�N�N�N�N�Nr<c�L�|�td��d��dS)Nr�r�r�rbs r:�test_unescape_allzSaxutilsTest.test_unescape_all=s2������"@�A�A�-�	/�	/�	/�	/�	/r<c�R�|�tdddi��d��dSr�r�rbs r:�test_unescape_extraz SaxutilsTest.test_unescape_extraAs8������-�$��1C�D�D�+�	-�	-�	-�	-�	-r<c�R�|�tdddi��d��dS)Nz	&amp;foo;z&foo;�splatr�rbs r:�test_unescape_amp_extraz$SaxutilsTest.test_unescape_amp_extraEs-������+���/A�B�B�G�L�L�L�L�Lr<c�L�|�td��d��dS)Nr�z"Donald Duck &amp; Co"�r-rrbs r:�test_quoteattr_basicz!SaxutilsTest.test_quoteattr_basicIs2������#5�6�6�1�	3�	3�	3�	3�	3r<c�L�|�td��d��dS)NzIncludes "double" quotesz'Includes "double" quotes'r�rbs r:�test_single_quoteattrz"SaxutilsTest.test_single_quoteattrM�2������#=�>�>�7�	9�	9�	9�	9�	9r<c�L�|�td��d��dS)NzIncludes 'single' quotesz"Includes 'single' quotes"r�rbs r:�test_double_quoteattrz"SaxutilsTest.test_double_quoteattrQr�r<c�L�|�td��d��dS)Nz%Includes 'single' and "double" quotesz1"Includes 'single' and &quot;double&quot; quotes"r�rbs r:�test_single_double_quoteattrz)SaxutilsTest.test_single_double_quoteattrUs7������#L�M�M�N�	P�	P�	P�	P�	Pr<c�&�tdg��}dS)Nzxml.parsers.no_such_parserr�)r9r�s  r:�test_make_parserzSaxutilsTest.test_make_parserZs��
�5�6�7�7���r<N)rFrGrHr�r�r�r�r�r�r�r�r�r�r�r�rIr<r:r�r�,s�������M�M�M�9�9�9�-�-�-�
O�O�O�/�/�/�-�-�-�M�M�M�3�3�3�9�9�9�9�9�9�P�P�P�
8�8�8�8�8r<r�c�V�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
S)�PrepareInputSourceTestc��tj|_t|jd��5}|�d��ddd��dS#1swxYwYdS)NrWzThis was read from a file.)rr�filerYrZ)r9�tmps  r:�setUpzPrepareInputSourceTest.setUpbs����$��	�
�$�)�S�
!�
!�	4�S��I�I�2�3�3�3�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4����	4�	4�	4�	4�	4�	4s�A
�
A�Ac�8�tj|j��dSr`)rrar�rbs r:rczPrepareInputSourceTest.tearDowngs������#�#�#�#�#r<c� �td��S�NsThis is a byte stream.)rrbs r:�make_byte_streamz'PrepareInputSourceTest.make_byte_streamjs���0�1�1�1r<c� �td��S�NzThis is a character stream.)rrbs r:�make_character_streamz,PrepareInputSourceTest.make_character_streamms���5�6�6�6r<c��|�|��|�|���|��|���dSr`)�assertIsNotNoner-�read�close)r9�stream�contents   r:�checkContentz#PrepareInputSourceTest.checkContentpsE�����V�$�$�$����������0�0�0��������r<c�8�t|j��}|�|�����t	|��}|�|�����|�|���d��dSr�)	rr��setCharacterStreamr�r�assertIsNone�
getByteStreamr��getCharacterStream�r9�src�preps   r:�test_character_streamz,PrepareInputSourceTest.test_character_streamvs����$�)�$�$�����t�9�9�;�;�<�<�<�#�C�(�(�����$�,�,�.�.�/�/�/����$�1�1�3�3�7�	9�	9�	9�	9�	9r<c�8�t|j��}|�|�����t	|��}|�|�����|�|���d��dSr�)	rr�rr�rr�r�r�r�r�s   r:�test_byte_streamz'PrepareInputSourceTest.test_byte_streams����$�)�$�$�����$�/�/�1�1�2�2�2�#�C�(�(�����$�1�1�3�3�4�4�4����$�,�,�.�.�3�	5�	5�	5�	5�	5r<c���t|j��}t|��}|�|�����|�|���d��dS�NsThis was read from a file.)rr�rr�r�r�r�r�s   r:�test_system_idz%PrepareInputSourceTest.test_system_id�ss���$�)�$�$��#�C�(�(�����$�1�1�3�3�4�4�4����$�,�,�.�.�7�	9�	9�	9�	9�	9r<c���t|j��}|�|�����|�|���d��dSr�)rr�r�r�r�r��r9r�s  r:�test_stringz"PrepareInputSourceTest.test_string�sd��#�D�I�.�.�����$�1�1�3�3�4�4�4����$�,�,�.�.�7�	9�	9�	9�	9�	9r<c���tt|j����}|�|�����|�|���d��dSr�)rrr�r�r�r�r�r�s  r:�test_path_objectsz(PrepareInputSourceTest.test_path_objects�sl��#�H�T�Y�$7�$7�8�8�����$�1�1�3�3�4�4�4����$�,�,�.�.�7�	9�	9�	9�	9�	9r<c���t|�����}|�|�����|�|���d��dSr�)rr�r�r�r�r�r�s  r:�test_binary_filez'PrepareInputSourceTest.test_binary_file�sp��$�D�$9�$9�$;�$;�<�<�����$�1�1�3�3�4�4�4����$�,�,�.�.�3�	5�	5�	5�	5�	5r<c���t|�����}|�|�����|�|���d��dSr�)rr�r�r�r�r�r�s  r:�test_text_filez%PrepareInputSourceTest.test_text_file�sp��$�D�$>�$>�$@�$@�A�A�����$�,�,�.�.�/�/�/����$�1�1�3�3�7�	9�	9�	9�	9�	9r<N)rFrGrHr�rcr�r�r�r�r�r�r�r�r�r�rIr<r:r�r�`s�������4�4�4�
$�$�$�2�2�2�7�7�7����9�9�9�5�5�5�9�9�9�9�9�9�9�9�9�5�5�5�9�9�9�9�9r<r�c��eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZdS)�
XmlgenTestc�h�|���}t|��}|���|�di��|�d��|���|�|���|�d����dS)NrN�<doc></doc>�	�ioclassr	�
startDocument�startElement�
endElement�endDocumentr-rg�xml�r9ri�gens   r:�test_xmlgen_basiczXmlgenTest.test_xmlgen_basic�s����������6�"�"�������������#�#�#����u����������������*�*�D�H�H�]�,C�,C�D�D�D�D�Dr<c�l�|���}t|d���}|���|�di��|�d��|���|�|���|�d����dS)NT��short_empty_elementsrN�<doc/>r�rs   r:�test_xmlgen_basic_emptyz"XmlgenTest.test_xmlgen_basic_empty�s����������6��=�=�=�������������#�#�#����u����������������*�*�D�H�H�X�,>�,>�?�?�?�?�?r<c��|���}t|��}|���|�di��|�d��|�d��|���|�|���|�	d����dS)NrN�huhei�<doc>huhei</doc>�
rr	rr�
charactersrrr-rgrrs   r:�test_xmlgen_contentzXmlgenTest.test_xmlgen_content�s����������6�"�"�������������#�#�#����w�������u����������������*�*�D�H�H�5G�,H�,H�I�I�I�I�Ir<c��|���}t|d���}|���|�di��|�d��|�d��|���|�|���|�	d����dS)NTr
rNrrrrs   r:�test_xmlgen_content_emptyz$XmlgenTest.test_xmlgen_content_empty�s����������6��=�=�=�������������#�#�#����w�������u����������������*�*�D�H�H�5G�,H�,H�I�I�I�I�Ir<c��|���}t|��}|���|�dd��|�di��|�d��|���|�|���|�	d����dS)N�testrhrNz<?test data?><doc></doc>)
rr	r�processingInstructionrrrr-rgrrs   r:�test_xmlgen_pizXmlgenTest.test_xmlgen_pi�s����������6�"�"���������!�!�&�&�1�1�1������#�#�#����u����������������*�*��H�H�/�0�0�	2�	2�	2�	2�	2r<c��|���}t|��}|���|�di��|�d��|�d��|���|�|���|�	d����dS)NrNz<huhei&z<doc>&lt;huhei&amp;</doc>rrs   r:�test_xmlgen_content_escapez%XmlgenTest.test_xmlgen_content_escape�s����������6�"�"�������������#�#�#����y�!�!�!����u����������������*�*��H�H�0�1�1�	3�	3�	3�	3�	3r<c�z�|���}t|��}|���|�dddi��|�dddi��|�d��|�dddi��|�d��|�dddi��|�d��|�d��|���|�|���|�d����dS)	NrN�a�"�e�'z'"z

	zK<doc a='"'><e a="'"></e><e a="'&quot;"></e><e a="&#10;&#13;&#9;"></e></doc>r�rs   r:�test_xmlgen_attr_escapez"XmlgenTest.test_xmlgen_attr_escape�s1���������6�"�"�������������c�
�+�+�+�����s�C�j�)�)�)����s��������s�E�l�+�+�+����s��������s�H�o�.�.�.����s�������u����������������*�*�D�H�H�
1�-2�-2�	3�	3�	3�	3�	3r<c��d}|D]�}|���}t||���}|���|�dddi��|�d��|�d��|���|�|���|�	d|�������dS)N�	ziso-8859-15rrzrorqrpzutf-32zutf-32bezutf-32lersrNr�€u<doc a="€">€</doc>r�r9rurOrirs     r:�test_xmlgen_encodingzXmlgenTest.test_xmlgen_encodings���7�	�"�	M�	M�H��\�\�^�^�F��v��9�9�9�C����������U�S�(�O�4�4�4��N�N�8�$�$�$��N�N�5�!�!�!��O�O�������V�_�_�.�.����7�(��K�K�
M�
M�
M�
M�	M�	Mr<c��|���}t|d���}|���|�dddi��|�d��|�d��|���|�|���|�	dd�����dS)N�asciirsrNrr$z<doc a="&#8364;">&#8364;</doc>rrs   r:�test_xmlgen_unencodablez"XmlgenTest.test_xmlgen_unencodables����������6�G�4�4�4�������������h��0�0�0����x� � � ����u����������������*�*��H�H�5��H�H�H�	J�	J�	J�	J�	Jr<c��|���}t|��}|���|�di��|�d��|�d��|���|�|���|�	d����dS)NrN� �<doc> </doc>�
rr	rr�ignorableWhitespacerrr-rgrrs   r:�test_xmlgen_ignorablez XmlgenTest.test_xmlgen_ignorable,s����������6�"�"�������������#�#�#�����$�$�$����u����������������*�*�D�H�H�^�,D�,D�E�E�E�E�Er<c��|���}t|d���}|���|�di��|�d��|�d��|���|�|���|�	d����dS)NTr
rNr+r,r-rs   r:�test_xmlgen_ignorable_emptyz&XmlgenTest.test_xmlgen_ignorable_empty8s����������6��=�=�=�������������#�#�#�����$�$�$����u����������������*�*�D�H�H�^�,D�,D�E�E�E�E�Er<c�&�d}|D�]
}|���}t||���}|���|�dddi��|�d�|����|�d�|����|�d��|���|�	|�
��|�d|�������dS)Nr#rsrNrr$r+u<doc a="€">€ </doc>)rr	rrrrSr.rrr-rgrr%s     r:�test_xmlgen_encoding_bytesz%XmlgenTest.test_xmlgen_encoding_bytesDs��7�	�"�	N�	N�H��\�\�^�^�F��v��9�9�9�C����������U�S�(�O�4�4�4��N�N�8�?�?�8�4�4�5�5�5��#�#�C�J�J�x�$8�$8�9�9�9��N�N�5�!�!�!��O�O�������V�_�_�.�.����8�8��L�L�
N�
N�
N�
N�	N�	Nr<c�R�|���}t|��}|���|�dt��|�tdfdi��|�ddi��|�dd��|�tdfd��|�d��|���|�	|�
��|�dtz����dS)N�ns1rN�ns1:doc�N�udocz/<ns1:doc xmlns:ns1="%s"><udoc></udoc></ns1:doc>�rr	r�startPrefixMappingr?�startElementNS�endElementNS�endPrefixMappingrr-rgrrs   r:�test_xmlgen_nszXmlgenTest.test_xmlgen_nsVs���������6�"�"�����������u�f�-�-�-����F�E�?�I�r�:�:�:����>�4��4�4�4������.�.�.����&�%��)�4�4�4����U�#�#�#�������������*�*�D�H�H�<�)/�0�-1�-1�	2�	2�	2�	2�	2r<c�V�|���}t|d���}|���|�dt��|�tdfdi��|�ddi��|�dd��|�tdfd��|�d��|���|�	|�
��|�dtz����dS)NTr
r5rNr6r7z)<ns1:doc xmlns:ns1="%s"><udoc/></ns1:doc>r9rs   r:�test_xmlgen_ns_emptyzXmlgenTest.test_xmlgen_ns_emptyhs���������6��=�=�=�����������u�f�-�-�-����F�E�?�I�r�:�:�:����>�4��4�4�4������.�.�.����&�%��)�4�4�4����U�#�#�#�������������*�*�D�H�H�6�)/�0�-1�-1�	2�	2�	2�	2�	2r<c�p�|���}t|��}|���|�ddddi��|�dd��|���|�|���|�d����dS)N�Nrr�N�b�cz
<a b="c"></a>�	rr	rr;r<rr-rgrrs   r:�test_1463026_1zXmlgenTest.test_1463026_1zs����������6�"�"�����������;��k�#�->�?�?�?�����c�*�*�*�������������*�*�D�H�H�_�,E�,E�F�F�F�F�Fr<c�t�|���}t|d���}|���|�ddddi��|�dd��|���|�|���|�d����dS)NTr
rBrrCrEz
<a b="c"/>rFrs   r:�test_1463026_1_emptyzXmlgenTest.test_1463026_1_empty�s����������6��=�=�=�����������;��k�#�->�?�?�?�����c�*�*�*�������������*�*�D�H�H�\�,B�,B�C�C�C�C�Cr<c���|���}t|��}|���|�dd��|�ddi��|�dd��|�d��|���|�|�	��|�
d����dS)N�qux�rKrrz<a xmlns="qux"></a>�rr	rr:r;r<r=rr-rgrrs   r:�test_1463026_2zXmlgenTest.test_1463026_2�s����������6�"�"�����������t�U�+�+�+����<��b�1�1�1�����s�+�+�+����T�"�"�"�������������*�*�D�H�H�5J�,K�,K�L�L�L�L�Lr<c���|���}t|d���}|���|�dd��|�ddi��|�dd��|�d��|���|�|�	��|�
d����dS)NTr
rKrLrz<a xmlns="qux"/>rMrs   r:�test_1463026_2_emptyzXmlgenTest.test_1463026_2_empty�s����������6��=�=�=�����������t�U�+�+�+����<��b�1�1�1�����s�+�+�+����T�"�"�"�������������*�*�D�H�H�5G�,H�,H�I�I�I�I�Ir<c���|���}t|��}|���|�dd��|�ddddi��|�dd��|�d��|���|�|�	��|�
d����dS)N�myrKrLrrCrEz"<my:a xmlns:my="qux" b="c"></my:a>rMrs   r:�test_1463026_3zXmlgenTest.test_1463026_3�s����������6�"�"�����������t�U�+�+�+����<��{�3�.?�@�@�@�����s�+�+�+����T�"�"�"�������������*�*��H�H�9�:�:�	<�	<�	<�	<�	<r<c���|���}t|d���}|���|�dd��|�ddddi��|�dd��|�d��|���|�|�	��|�
d	����dS)
NTr
rRrKrLrrCrEz<my:a xmlns:my="qux" b="c"/>rMrs   r:�test_1463026_3_emptyzXmlgenTest.test_1463026_3_empty�s����������6��=�=�=�����������t�U�+�+�+����<��{�3�.?�@�@�@�����s�+�+�+����T�"�"�"�������������*�*��H�H�3�4�4�	6�	6�	6�	6�	6r<c��td��}t��}|�td��|���}t|��}|�|��|�|��|�|�	��|�
d����dS)Nzb<?xml version="1.0"?><a:g1 xmlns:a="http://example.com/ns"><a:g2 xml:lang="en">Hello</a:g2></a:g1>T�M<a:g1 xmlns:a="http://example.com/ns"><a:g2 xml:lang="en">Hello</a:g2></a:g1>)rr�
setFeaturerrr	�setContentHandlerrer-rgr)r9�test_xml�parserrirs     r:�test_5027_1zXmlgenTest.test_5027_1�s����
�����������,�d�3�3�3��������6�"�"��� � ��%�%�%����X����������*�*����#�$�$�	%�	%�	%�	%�	%r<c�N�|���}t|��}|���|�dd��|�ddi��ddi}|�dd|��|�d	��|�dd��|�dd��|�d��|���|�	|�
��|�d
����dS)Nr�http://example.com/ns)r^�g1r_)z$http://www.w3.org/XML/1998/namespace�lang�en)r^�g2rb�HellorW)rr	rr:r;rr<r=rr-rgr)r9rir�	lang_attrs    r:�test_5027_2zXmlgenTest.test_5027_2�s+���������6�"�"�����������s�$;�<�<�<����:�D�"�E�E�E�E�t�L�	����:�D�)�L�L�L����w�������8�$�?�?�?����8�$�?�?�?����S�!�!�!�������������*�*����#�$�$�	%�	%�	%�	%�	%r<c�~�|���}d�}||��|�|j��dS)Nc�x�t|��}|���|�di��dS)NrN)r	rr)�outrs  r:�funcz+XmlgenTest.test_no_close_file.<locals>.func�s=���s�#�#�C����������U�B�'�'�'�'�'r<)r�assertFalser�)r9riris   r:�test_no_close_filezXmlgenTest.test_no_close_file�sI��������	(�	(�	(�	
��V���������'�'�'�'�'r<c	���|���}t|��}|�dddi��|�d��|�d��|�dddi��|�d��|�|���|�d��t|�d	����d���dS)
N�foor�1.0rc�barrDz2.0z+<foo a="1.0">Hello</foo><bar b="2.0"></bar>�)	rr	rrrr-rgrr1rs   r:�test_xmlgen_fragmentzXmlgenTest.test_xmlgen_fragments����������6�"�"��	�����e��-�-�-����w�������u���������e��-�-�-����u����	
������*�*��H�H�B�C�C�C����QS���DU�DU�DV�DV�W�	Y�	Y�	Y�	Y�	Yr<N)rFrGrHrr
rrrrr!r&r)r/r1r3r>r@rGrIrNrPrSrUr\rerkrqrIr<r:r�r��s�������E�E�E�@�@�@�
J�
J�
J�
J�
J�
J�2�2�2�3�3�3�3�3�3�(M�M�M�"J�J�J�
F�
F�
F�
F�
F�
F�N�N�N�$2�2�2�$2�2�2�$	G�	G�	G�	D�	D�	D�M�M�M�J�J�J�<�<�<�6�6�6�%�%�%�4%�%�%�8(�(�(�
Y�
Y�
Y�
Y�
Yr<r�c��eZdZeZdd�ZdZdS)�StringXmlgenTestrnc��d|�d|��SrKrI�r9rNrOs   r:rzStringXmlgenTest.xmls���<D�H�H�c�c�J�Jr<N�rn)rFrGrHrrrr)rIr<r:rsrss5�������G�K�K�K�K�#���r<rsc��eZdZeZdd�ZdS)�BytesXmlgenTestrnc�:�d|�d|���|d��S)NrLrMrR�rSrus   r:rzBytesXmlgenTest.xmls*������3�3� �!'���2E�!F�!F�	Gr<Nrv)rFrGrHrrrrIr<r:rxrxs3�������G�G�G�G�G�G�Gr<rxc�*�eZdZGd�de��ZdS)�WriterXmlgenTestc�2�eZdZejZdZd�Zd�Zd�Z	dS)�WriterXmlgenTest.ioclassFc��dS�NTrIrbs r:�seekablez!WriterXmlgenTest.ioclass.seekable(s���4r<c� �t|��Sr`)r1rbs r:�tellzWriterXmlgenTest.ioclass.tell+s���t�9�9�r<c�,�d�|��S)Nr<)�joinrbs r:rgz!WriterXmlgenTest.ioclass.getvalue/s���8�8�D�>�>�!r<N)
rFrGrHr3�appendrZr�r�r�rgrIr<r:rr~$sM�����������	�	�	�	�	�	�	"�	"�	"�	"�	"r<rN)rFrGrHr3rrIr<r:r|r|#s>������"�"�"�"�"�$�"�"�"�"�"r<r|c��eZdZd�Zdd�ZdS)�StreamWriterXmlgenTestc�v�t��}tjd��|d��}|j|_|S)Nr(rR)r�codecs�	getwriterrg)r9�raw�writers   r:rzStreamWriterXmlgenTest.ioclass3s6���i�i��*��!�'�*�*�3�0C�D�D���,����
r<rnc�:�d|�d|���dd��S�NrLrMr(rRrzrus   r:rzStreamWriterXmlgenTest.xml9�*������3�3� �!'���1D�!E�!E�	Fr<Nrv)rFrGrHrrrIr<r:r�r�2s=���������F�F�F�F�F�Fr<r�c�0�eZdZejdzZd�Zdd�ZdS)�StreamReaderWriterXmlgenTestz-codecsc����tj�jdddd������fd�}��|���fd�}|�_�S)NrWr(rRr)rOrX�	bufferingc�b������tj�j��dSr`)r�rra�fname)r9r�s��r:�cleanupz5StreamReaderWriterXmlgenTest.ioclass.<locals>.cleanupCs)����L�L�N�N�N���T�Z�(�(�(�(�(r<c�������t�jd��5}|���cddd��S#1swxYwYdS�Nry)r�rY�namer�)r[r�s �r:rgz6StreamReaderWriterXmlgenTest.ioclass.<locals>.getvalueGs�����L�L�N�N�N��f�k�4�(�(�
 �A��v�v�x�x�
 �
 �
 �
 �
 �
 �
 �
 �
 �
 �
 �
 ����
 �
 �
 �
 �
 �
 s�A�A�A)r�rYr��
addCleanuprg)r9r�rgr�s`  @r:rz$StreamReaderWriterXmlgenTest.ioclass@s�������T�Z��w�$7�1�F�F�F��	)�	)�	)�	)�	)�	)�	
���� � � �	 �	 �	 �	 �	 �
#����
r<rnc�:�d|�d|���dd��Sr�rzrus   r:rz StreamReaderWriterXmlgenTest.xmlOr�r<Nrv)rFrGrHrrr�rrrIr<r:r�r�=sJ��������y�(�E�
�
�
�F�F�F�F�F�Fr<r�s,<?xml version="1.0" encoding="iso-8859-1"?>
c��eZdZd�ZdS)�XMLFilterBaseTestc���t��}t|��}t��}|�|��|���|�di��|�d��|�d��|�d��|�	��|�
|���tdz��dS)NrNr�r+s<doc>content </doc>)
rr	r
rYrrrr.rrr-rg�start)r9rir�filters    r:�test_filter_basicz#XMLFilterBaseTest.test_filter_basicWs��������6�"�"������� � ��%�%�%����������E�2�&�&�&����)�$�$�$��"�"�3�'�'�'����%� � � �������������*�*�E�4J�,J�K�K�K�K�Kr<N)rFrGrHr�rIr<r:r�r�Vs(������
L�
L�
L�
L�
Lr<r�ryc�8�eZdZd�Zd�Zed���Zd�Zd�ZGd�d��Z	Gd�d	��Z
d
�Zd�Zd�Z
Gd
�d��Zd�Zd�ZGd�de��Zd�Zd�Zd�Zd�Zd�Zd�Zed���Zd�Zd�Zd�Zd�Zd�Zd�Zed ���Z d!S)"�ExpatReaderTestc�d�t��}t��}t|��}|�|��t	t
d��5}|�|��ddd��n#1swxYwY|�|���t��dSr��
rrr	rYrY�TEST_XMLFILErer-rg�xml_test_out�r9r[ri�xmlgenr[s     r:�test_expat_binary_filez&ExpatReaderTest.test_expat_binary_filess������������f�%�%��� � ��(�(�(�
�,��
%�
%�	���L�L��O�O�O�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	
������*�*�L�9�9�9�9�9s�A8�8A<�?A<c�h�t��}t��}t|��}|�|��t	t
dd���5}|�|��ddd��n#1swxYwY|�|���t��dS�N�rtrnrsr�r�s     r:�test_expat_text_filez$ExpatReaderTest.test_expat_text_file~s������������f�%�%��� � ��(�(�(�
�,��|�
<�
<�
<�	���L�L��O�O�O�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	
������*�*�L�9�9�9�9�9s�A:�:A>�A>c��tj}tjt|��|�tj|��t��}t��}t|��}|�
|��|�t|d����|�
|���t��dSr�)r�TESTFN_UNICODE�shutil�copyfiler�r�rarrr	rYrerYr-rgr��r9r�r[rir�s     r:�test_expat_binary_file_nonasciiz/ExpatReaderTest.test_expat_binary_file_nonascii�s����(�����e�,�,�,����	�(�%�0�0�0����������f�%�%��� � ��(�(�(����T�%��&�&�'�'�'�������*�*�L�9�9�9�9�9r<c��tjt��}t��}t	��}t|��}|�|��t|d��5}|�|��ddd��n#1swxYwY|�	|�
��t��dSr�)�os�fsencoder�rrr	rYrYrer-rgr�)r9r�r[rir�r[s      r:�!test_expat_binary_file_bytes_namez1ExpatReaderTest.test_expat_binary_file_bytes_name�s�����L�)�)�����������f�%�%��� � ��(�(�(�
�%��
�
�	�!��L�L��O�O�O�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	
������*�*�L�9�9�9�9�9s�*B�B�Bc���t��}t��}t|��}|�|��t	t
d��5}t	|���dd���5}|�|��ddd��n#1swxYwYddd��n#1swxYwY|�|�	��t��dS)NryF)�closefd)rrr	rYrYr��filenorer-rgr�)r9r[rir�r[�f2s      r:�test_expat_binary_file_int_namez/ExpatReaderTest.test_expat_binary_file_int_name�s@�����������f�%�%��� � ��(�(�(�
�,��
%�
%�	!���a�h�h�j�j�$��6�6�6�
!�"����R� � � �
!�
!�
!�
!�
!�
!�
!�
!�
!�
!�
!����
!�
!�
!�
!�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!����	!�	!�	!�	!�	
������*�*�L�9�9�9�9�9s6�%B4�;B�B4�B!	�!B4�$B!	�%B4�4B8�;B8c� �eZdZd�Zd�Zd�ZdS)�ExpatReaderTest.TestDTDHandlerc�"�g|_g|_dSr`)�
_notations�	_entitiesrbs r:�__init__z'ExpatReaderTest.TestDTDHandler.__init__�s�� �D�O� �D�N�N�Nr<c�@�|j�|||f��dSr`)r�r�)r9r��publicId�systemIds    r:�notationDeclz+ExpatReaderTest.TestDTDHandler.notationDecl�s%���O�"�"�D�(�H�#=�>�>�>�>�>r<c�B�|j�||||f��dSr`)r�r�)r9r�r�r��ndatas     r:�unparsedEntityDeclz1ExpatReaderTest.TestDTDHandler.unparsedEntityDecl�s'���N�!�!�4��8�U�"C�D�D�D�D�Dr<N)rFrGrHr�r�r�rIr<r:�TestDTDHandlerr��sF������	!�	!�	!�	?�	?�	?�	E�	E�	E�	E�	Er<r�c��eZdZd�Zd�ZdS)�"ExpatReaderTest.TestEntityRecorderc��g|_dSr`)�entitiesrbs r:r�z+ExpatReaderTest.TestEntityRecorder.__init__�s
���D�M�M�Mr<c��|j�||f��t��}|�|��|�|��|Sr`)r�r�r�setPublicId�setSystemId)r9r�r��sources    r:�
resolveEntityz0ExpatReaderTest.TestEntityRecorder.resolveEntity�sS���M� � �(�H�!5�6�6�6� �]�]�F����x�(�(�(����x�(�(�(��Mr<N)rFrGrHr�r�rIr<r:�TestEntityRecorderr��s2������	�	�	�	�	�	�	�	r<r�c���t��}|���}|�|��|�d��|�d��|�d��|�d��|�d��|���|�|jdg��|�|jdg��dS)N�<!DOCTYPE doc [
z-  <!ENTITY img SYSTEM "expat.gif" NDATA GIF>
zW  <!NOTATION GIF PUBLIC "-//CompuServe//NOTATION Graphics Interchange Format 89a//EN">
�]>
r�)�GIFz;-//CompuServe//NOTATION Graphics Interchange Format 89a//ENN)�imgNz	expat.gifr�)rr��
setDTDHandler�feedr�r-r�r�)r9r[�handlers   r:�test_expat_dtdhandlerz%ExpatReaderTest.test_expat_dtdhandler�s��������%�%�'�'�����W�%�%�%����'�(�(�(����D�E�E�E����n�o�o�o����F�������M�"�"�"�����������+�
Y�Z�	\�	\�	\�����*�-N�,O�P�P�P�P�Pr<c��|�tjj��t	��}|�td��|���}|�|��|�	t��5|�d��ddd��n#1swxYwY|�|j
dg��dS)NT�8<!DOCTYPE external SYSTEM "unsupported://non-existing">
)Nzunsupported://non-existing)r��urllib�request�
urlcleanuprrXrr��setEntityResolverr&rr�r-r��r9r[�resolvers   r:�test_expat_external_dtd_enabledz/ExpatReaderTest.test_expat_external_dtd_enabled�s�������1�2�2�2��������.��5�5�5��*�*�,�,��� � ��*�*�*�
�
�
�x�
(�
(�	�	��K�K�K�
�
�
�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	
����� D�E�	
�	
�	
�	
�	
s�B3�3B7�:B7c�&�t��}|���}|�|��|�d��|�d��|���|�|jg��dS)Nr�z<doc />)rr�r�r�r�r-r�r�s   r:�test_expat_external_dtd_defaultz/ExpatReaderTest.test_expat_external_dtd_default�s��������*�*�,�,��� � ��*�*�*����G�	
�	
�	
�	���I��������������*�B�/�/�/�/�/r<c��eZdZd�ZdS)�"ExpatReaderTest.TestEntityResolverc�f�t��}|�td����|S)Ns	<entity/>)rrr)r9r�r��inpsrcs    r:r�z0ExpatReaderTest.TestEntityResolver.resolveEntity�s,�� �]�]�F�� � ���!6�!6�7�7�7��Mr<N)rFrGrHr�rIr<r:�TestEntityResolverr��s#������	�	�	�	�	r<r�c�6�t��}|�td��|�|�����t��}|�t|����|�d��|�d��|�d��|�d��|�	��|�
|���tdz��dS)NTr��#  <!ENTITY test SYSTEM "whatever">
r��<doc>&test;</doc>s<doc><entity></entity></doc>)
rrXrr�r�rrYr	r�r�r-rgr��r9r[ris   r:�!test_expat_entityresolver_enabledz1ExpatReaderTest.test_expat_entityresolver_enableds����������.��5�5�5�� � ��!8�!8�!:�!:�;�;�;������ � ��f�!5�!5�6�6�6����'�(�(�(����:�;�;�;����F�������'�(�(�(�������������*�*�E�8�-9�	:�	:�	:�	:�	:r<c�\�t��}|�|�t��d��|�|�����t
��}|�t|����|�	d��|�	d��|�	d��|�	d��|�
��|�|���tdz��dS)NFr�r�r�r��<doc></doc>)
rr-�
getFeaturerr�r�rrYr	r�r�rgr�r�s   r:�!test_expat_entityresolver_defaultz1ExpatReaderTest.test_expat_entityresolver_defaults����������*�*�+?�@�@�%�H�H�H�� � ��!8�!8�!:�!:�;�;�;������ � ��f�!5�!5�6�6�6����'�(�(�(����:�;�;�;����F�������'�(�(�(�������������*�*�E�'�-(�	)�	)�	)�	)�	)r<c��eZdZd�Zd�ZdS)�ExpatReaderTest.AttrGathererc��||_dSr`��_attrs)r9r�r$s   r:rz)ExpatReaderTest.AttrGatherer.startElement$�
���D�K�K�Kr<c��||_dSr`r�)r9r��qnamer$s    r:r;z+ExpatReaderTest.AttrGatherer.startElementNS'r�r<N)rFrGrHrr;rIr<r:�AttrGathererr�"s2������	 �	 �	 �	 �	 �	 �	 �	 r<rc��t��}|���}|�|��|�d��|���|�|j��dS)Nr)rrrYr�r�r;r��r9r[�gathers   r:�test_expat_attrs_emptyz&ExpatReaderTest.test_expat_attrs_empty*sk�������"�"�$�$��� � ��(�(�(����H��������������
�.�.�.�.�.r<c��t��}|���}|�|��|�d��|���|�|j��dS)Nz<doc attr='val'/>)rrrYr�r�rEr�rs   r:�test_expat_attrs_wattrz&ExpatReaderTest.test_expat_attrs_wattr4sl�������"�"�$�$��� � ��(�(�(����'�(�(�(�����������
�.�.�.�.�.r<c��td��}|���}|�|��|�d��|���|�|j��dS)NrBr)rrrYr�r�r@r�rs   r:�test_expat_nsattrs_emptyz(ExpatReaderTest.test_expat_nsattrs_empty>so���q�!�!���"�"�$�$��� � ��(�(�(����H�����������!�!�&�-�0�0�0�0�0r<c���td��}|���}|�|��|�dtz��|���|j}|�|���d��|�|�	��tdfg��|�
|���gkp|���dgk��|�t|��d��|�
tdf|��|�|�tdf��d��|�|�tdfd��d��|�t|�����tdfdfg��|�t|�����dg��|�|�tdf��d��|�|tdfd��dS)NrBz"<doc xmlns:ns='%s' ns:attr='val'/>r#r>rCr%)rrrYr�r?r�r�r-r.r/r�r0r1rDr5r3r6r7r()r9r[rr$s    r:�test_expat_nsattrs_wattrz(ExpatReaderTest.test_expat_nsattrs_wattrHs���q�!�!���"�"�$�$��� � ��(�(�(����8�6�A�B�B�B��������
��������*�*�A�.�.�.�������)�)�V�V�,<�+=�>�>�>�������*�*�b�0�:����*�*�y�k�9�	<�	<�	<�����U���Q�'�'�'��
�
�v�v�&��.�.�.�������F�F�#3�4�4�e�<�<�<�������F�F�#3�R�8�8�%�@�@�@�����e�k�k�m�m�,�,���0@�%�/H�.I�J�J�J�����e�l�l�n�n�-�-��w�7�7�7���������(8�9�9�5�A�A�A�������/�0�%�8�8�8�8�8r<c��t��}t��}t|��}|�|��|�t
��|�|���t��dSr`)	rrr	rYrer�r-rgr��r9r[rir�s    r:�test_expat_inpsource_filenamez-ExpatReaderTest.test_expat_inpsource_filenameasm�����������f�%�%��� � ��(�(�(����\�"�"�"�������*�*�L�9�9�9�9�9r<c�.�t��}t��}t|��}|�|��|�tt����|�|���t��dSr`)
rrr	rYrerr�r-rgr�r
s    r:�test_expat_inpsource_sysidz*ExpatReaderTest.test_expat_inpsource_sysidksu�����������f�%�%��� � ��(�(�(����[��.�.�/�/�/�������*�*�L�9�9�9�9�9r<c��tj}tjt|��|�tj|��t��}t��}t|��}|�
|��|�t|����|�
|���t��dSr`)rr�r�r�r�r�rarrr	rYrerr-rgr�r�s     r:�#test_expat_inpsource_sysid_nonasciiz3ExpatReaderTest.test_expat_inpsource_sysid_nonasciius����(�����e�,�,�,����	�(�%�0�0�0����������f�%�%��� � ��(�(�(����[��'�'�(�(�(�������*�*�L�9�9�9�9�9r<c��t��}t��}t|��}|�|��t	��}ttd��5}|�|��|�|��ddd��n#1swxYwY|�	|�
��t��dSr�)rrr	rYrrYr�rrer-rgr��r9r[rir�r�r[s      r:� test_expat_inpsource_byte_streamz0ExpatReaderTest.test_expat_inpsource_byte_stream�s������������f�%�%��� � ��(�(�(�����
�,��
%�
%�	!��� � ��#�#�#��L�L�� � � �	!�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!����	!�	!�	!�	!�	
������*�*�L�9�9�9�9�9s�$+B�B�"Bc��t��}t��}t|��}|�|��t	��}ttdd���5}|�|��|�|��ddd��n#1swxYwY|�	|�
��t��dSr�)rrr	rYrrYr�r�rer-rgr�rs      r:�%test_expat_inpsource_character_streamz5ExpatReaderTest.test_expat_inpsource_character_stream�s������������f�%�%��� � ��(�(�(�����
�,��|�
<�
<�
<�	!���%�%�a�(�(�(��L�L�� � � �	!�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!����	!�	!�	!�	!�	
������*�*�L�9�9�9�9�9s�&+B�B!�$B!c�b�t��}t|��}t��}|�|��|�d��|�d��|���|�|���tdz��dS)N�<doc>�</doc>r�)	rr	rrYr�r�r-rgr��r9rir�r[s    r:�test_expat_incrementalz&ExpatReaderTest.test_expat_incremental�s��������f�%�%������� � ��(�(�(����G�������H����������������*�*�E�N�,B�C�C�C�C�Cr<c�l�t��}t|��}t��}|�|��|�d��|�d��t��}t|��}|�|��|���|�d��|�d��|�d��|���|�|���tdz��dS)Nr�textrs<doc>text</doc>)
rr	rrYr��resetr�r-rgr�rs    r:�test_expat_incremental_resetz,ExpatReaderTest.test_expat_incremental_reset�s��������f�%�%������� � ��(�(�(����G�������F���������f�%�%��� � ��(�(�(����������G�������F�������H����������������*�*�E�4F�,F�G�G�G�G�Gr<c���t��}t|��}t��}|�|��|�d��|�d��|���|�|���d��|�|���d��|�|�	��d��dS)NrrrB)
rr	rrYr�r�r-�getSystemId�getPublicId�
getLineNumberrs    r:�test_expat_locator_noinfoz)ExpatReaderTest.test_expat_locator_noinfo�s��������f�%�%������� � ��(�(�(����G�������H��������������+�+�-�-�t�4�4�4�����+�+�-�-�t�4�4�4�����-�-�/�/��3�3�3�3�3r<c�d�t��}t|��}t��}|�|��|�t
��|�|���t
��|�|���d��dSr`)	rr	rrYrer�r-r"r#rs    r:�test_expat_locator_withinfoz+ExpatReaderTest.test_expat_locator_withinfo�s��������f�%�%������� � ��(�(�(����\�"�"�"�����+�+�-�-�|�<�<�<�����+�+�-�-�t�4�4�4�4�4r<c���tj}tjt|��|�tj|��t��}t|��}t��}|�
|��|�|��|�|�
��|��|�|���d��dSr`)rr�r�r�r�r�rarr	rrYrer-r"r#)r9r�rir�r[s     r:�$test_expat_locator_withinfo_nonasciiz4ExpatReaderTest.test_expat_locator_withinfo_nonascii�s����(�����e�,�,�,����	�(�%�0�0�0������f�%�%������� � ��(�(�(����U��������+�+�-�-�u�5�5�5�����+�+�-�-�t�4�4�4�4�4r<N)!rFrGrHr�r��requires_nonascii_filenamesr�r�r�r�r�r�r�r�r�r�r�rrrrr	rrrrrrrr r%r'r)rIr<r:r�r�osV������	:�	:�	:�	:�	:�	:�!�:�:�!� �:�
:�
:�
:�
:�
:�
:�
E�
E�
E�
E�
E�
E�
E�
E�	�	�	�	�	�	�	�	�Q�Q�Q� 
�
�
�"
0�
0�
0���������:�:�:� )�)�)�$ � � � � �~� � � �/�/�/�/�/�/�1�1�1�9�9�9�2:�:�:�:�:�:�!�:�:�!� �:�:�:�:�:�:�:�
D�
D�
D�H�H�H�.4�4�4�5�5�5�!�5�5�!� �5�5�5r<r�c�:�eZdZd�Zd�Zd�ZGd�d��ZdS)�ErrorReportingTestc���t��}|�t����t��}|�td����d}|�|��	|�|��|���dS#t$r3}|�
|���|��Yd}~dSd}~wwxYw)Ns<foo bar foobar>za file name)rrYrrrrr�re�failrr-r")r9r[r�r�rs     r:�test_expat_inpsource_locationz0ErrorReportingTest.test_expat_inpsource_location�s�������� � ��!1�!1�2�2�2��������W�%8�9�9�:�:�:������4� � � �	4��L�L�� � � ��I�I�K�K�K�K�K���	4�	4�	4����Q�]�]�_�_�d�3�3�3�3�3�3�3�3�3�����	4���s�8)B#�#
C �-(C�C c�`�t��}|�t����|�t|jt
d����|�|���d��|�|�	��d��dS)Nz<foo>�rB)
rrYrr&rrerr-�getColumnNumberr$)r9r[s  r:�test_expat_incompletez(ErrorReportingTest.test_expat_incomplete�s�������� � ��!1�!1�2�2�2����+�V�\�8�G�;L�;L�M�M�M�����/�/�1�1�1�5�5�5�����-�-�/�/��3�3�3�3�3r<c
��ttdd|�dd������ttdd|�dd������ttdd|�dd������ttdd|�dd������dS)N�messagerB)�strr�DummyLocatorrbs r:�test_sax_parse_exception_strz/ErrorReportingTest.test_sax_parse_exception_strs���	��i��"�/�/��1�5�5�
7�
7�	8�	8�	8�	��i��"�/�/��a�8�8�
:�
:�	;�	;�	;�	��i��"�/�/��4�8�8�
:�
:�	;�	;�	;�	��i��"�/�/��d�;�;�
=�
=�	>�	>�	>�	>�	>r<c�,�eZdZd�Zd�Zd�Zd�Zd�ZdS)�ErrorReportingTest.DummyLocatorc�"�||_||_dSr`)�_lineno�_colno)r9�lineno�colnos   r:r�z(ErrorReportingTest.DummyLocator.__init__s��!�D�L��D�K�K�Kr<c��dS)N�pubidrIrbs r:r#z+ErrorReportingTest.DummyLocator.getPublicId����7r<c��dS)N�sysidrIrbs r:r"z+ErrorReportingTest.DummyLocator.getSystemId rBr<c��|jSr`)r<rbs r:r$z-ErrorReportingTest.DummyLocator.getLineNumber#s
���<�r<c��|jSr`)r=rbs r:r2z/ErrorReportingTest.DummyLocator.getColumnNumber&s
���;�r<N)rFrGrHr�r#r"r$r2rIr<r:r7r:s_������	 �	 �	 �	�	�	�	�	�	�	 �	 �	 �	�	�	�	�	r<r7N)rFrGrHr/r3r8r7rIr<r:r,r,�si������4�4�4�4�4�4�>�>�>�$���������r<r,c�&�eZdZd�Zd�Zd�Zd�ZdS)�
XmlReaderTestc�J�|�ti����dSr`)r;rrbs r:�test_attrs_emptyzXmlReaderTest.test_attrs_empty2s$������r� 2� 2�3�3�3�3�3r<c�N�|�tddi����dS)Nr#rC)rErrbs r:�test_attrs_wattrzXmlReaderTest.test_attrs_wattr5s)��������/?� @� @�A�A�A�A�Ar<c�L�|�tii����dSr`)r@rrbs r:�test_nsattrs_emptyz XmlReaderTest.test_nsattrs_empty8s'���!�!�"2�2�r�":�":�;�;�;�;�;r<c��ttdfditdfdi��}|�|���d��|�|���tdfg��|�|���dg��|�t
|��d��|�tdf|��|�t|�	����tdfg��|�|�
tdf��d��|�|�
tdfd��d��|�t|�����tdfdfg��|�t|�����dg��|�|�
tdf��d��|�|�d��d��|�|�d��tdf��|�|tdfd��|�|�tdf��d��dS)Nr#rCr>rBr%)rr?r-r.r/r0r1rDr3r4r5r6r7r(r)r*r+r8s  r:�test_nsattrs_wattrz XmlReaderTest.test_nsattrs_wattr;si�� �6�6�"2�U�!;�#)�6�"2�Y�!?�A�A��	
������*�*�A�.�.�.�������)�)�V�V�,<�+=�>�>�>�������*�*�Y�K�8�8�8�����U���Q�'�'�'��
�
�v�v�&��.�.�.�����e�j�j�l�l�+�+�v�v�.>�-?�@�@�@�������F�F�#3�4�4�e�<�<�<�������F�F�#3�R�8�8�%�@�@�@�����e�k�k�m�m�,�,���0@�%�/H�.I�J�J�J�����e�l�l�n�n�-�-��w�7�7�7���������(8�9�9�5�A�A�A�����.�.�y�9�9�5�A�A�A�����-�-�i�8�8�6�6�:J�K�K�K�������/�0�%�8�8�8�����-�-�v�v�.>�?�?��K�K�K�K�Kr<N)rFrGrHrJrLrNrPrIr<r:rHrH/sX������4�4�4�B�B�B�<�<�<�L�L�L�L�Lr<rHc��eZdZd�Zd�ZdS)�LexicalHandlerTestc��d|_d|_d|_d|_d|_d|_t
��|_|j�d�	|j|j����|j�d�	|j����|j�d�	|jd	����|j�d
�	|j����|j�d��|j�d��|j�d
��|j�d��|j�d��|j�d�	|jd	����|j�d�	|jd����|j�d�	|jd����|j�d��|j�d�	|j����|j�d��|j�d��|j�d��|j�d��|j�d�	|jd|jd	|jd����|j�d�	|jd����|j�d�	|j����|j�
d	��d|_d|_d|_
d|_d|_d|_d|_g|_dS)NrnzUTF-8�wish)�nbspr��target)zComment in a DTDzReally! You think so?z#<?xml version="{}" encoding="{}"?>
z<!DOCTYPE {} [
z<!-- {} -->
rz,<!ELEMENT {} (to,from,heading,body,footer)>
z<!ELEMENT to (#PCDATA)>
z<!ELEMENT from (#PCDATA)>
z<!ELEMENT heading (#PCDATA)>
z<!ELEMENT body (#PCDATA)>
z<!ELEMENT footer (#PCDATA)>
z<!ENTITY {} "&#xA0;">
z&<!ENTITY {} "Written by: Alexander.">
rBz+<!ENTITY {} "Hope it gets to: Aristotle.">
�r�z<{}>z<to>Aristotle</to>
z<from>Alexander</from>
z <heading>Supplication</heading>
z <body>Teach me patience!</body>
z<footer>&{};&{};&{};</footer>
z</{}>
F)r[�specified_version�specified_encoding�specified_doctype�specified_entity_names�specified_commentr�	test_datarZ�format�seek�versionrO�
standalone�doctype�publicID�systemID�
end_of_dtd�commentsrbs r:r�zLexicalHandlerTest.setUpQs������!&���")���!'���&B��#�";���!���������C�#�V�D�$:�$(�$;�=�=�	>�	>�	>�	
����/�#�V�D�$:�;�;�	=�	=�	=�����_�#�V�D�$:�1�$=�>�>�	@�	@�	@�����L�#�V�D�$:�;�;�	=�	=�	=�����8�9�9�9�����:�;�;�;�����=�>�>�>�����:�;�;�;�����<�=�=�=�����6�#�V�D�$?��$B�C�C�	E�	E�	E�����F�#�V�D�$?��$B�C�C�	E�	E�	E�����K�#�V�D�$?��$B�C�C�	E�	E�	E�����V�$�$�$�����V�]�]�4�+A�B�B�C�C�C�����3�4�4�4�����7�8�8�8�����@�A�A�A�����@�A�A�A�����>�#�V�D�$?��$B�$(�$?��$B�$(�$?��$B�D�D�	E�	E�	E�	
����_�3�3�D�4J�1�4M�N�N�O�O�O�����Y�-�-�d�.D�E�E�F�F�F�����A���������
���������
���
������
�
�
r<c��Gd�dt��}t��|_|j�t	����|j�d||����t
��}|�|j��|j�	|��|�
|j|j��|�
|j��|�
|j��|�|j��|�
t%|j��t%|j����|�
d|jd�d�|jd��dS)Nc�0��eZdZ�fd�Zd�Zd�Zd�Z�xZS)�<LexicalHandlerTest.test_handlers.<locals>.TestLexicalHandlerc�H��t��j|i|��||_dSr`��superr��test_harness�r9rmr��kwargs�	__class__s    �r:r�zELexicalHandlerTest.test_handlers.<locals>.TestLexicalHandler.__init__��-��� ���� �$�1�&�1�1�1�$0��!�!�!r<c�N�||j_||j_||j_dSr`)rmrbrcrd)r9rbrcrds    r:�startDTDzELexicalHandlerTest.test_handlers.<locals>.TestLexicalHandler.startDTD�s)��,3��!�)�-5��!�*�-5��!�*�*�*r<c��d|j_dSr�)rmrerbs r:�endDTDzCLexicalHandlerTest.test_handlers.<locals>.TestLexicalHandler.endDTD�s��/3��!�,�,�,r<c�D�|jj�|��dSr`)rmrfr�)r9rs  r:�commentzDLexicalHandlerTest.test_handlers.<locals>.TestLexicalHandler.comment�s"���!�*�1�1�$�7�7�7�7�7r<)rFrGrHr�rsrurw�
__classcell__�rps@r:�TestLexicalHandlerri�se�������
1�
1�
1�
1�
1�
6�
6�
6�

4�
4�
4�
8�
8�
8�
8�
8�
8�
8r<rz�-http://xml.org/sax/properties/lexical-handlerr+r)rrr[rYr�setPropertyrr�r]rer-rbrZr�rcrdr�rer1rfr\)r9rzr�s   r:�
test_handlersz LexicalHandlerTest.test_handlers�s{��	8�	8�	8�	8�	8��	8�	8�	8� $�o�o�����%�%�n�&6�&6�7�7�7�����;���t�$�$�	&�	&�	&������!�!�$�.�1�1�1�����&�!�!�!������t�'=�>�>�>����$�-�(�(�(����$�-�(�(�(������(�(�(�����T�]�+�+��T�3�4�4�	6�	6�	6����9�T�3�A�6�9�9�9�4�=��;K�L�L�L�L�Lr<N�rFrGrHr�r}rIr<r:rRrRPs8������4�4�4�lM�M�M�M�Mr<rRc��eZdZd�Zd�ZdS)�CDATAHandlerTestc��d|_g|_|j�d��|j�d��d|_t	��|_|j�d��|j�d��|j�|jdd�d���|j�d��|j�d��|j�d	|jd
d�d���|j�d��|j�d
��|j�d��g|_d|_	dS)N)zParseable character dataF)z <> &% - assorted other XML junk.Trz<root_doc>
z<some_pcdata>
�
z</some_pcdata>
z
<some_cdata>
z	<![CDATA[rBz]]>
z</some_cdata>
z</root_doc>
F)
r[�specified_charsr��
char_indexrr]rZr_�chardata�in_cdatarbs r:r�zCDATAHandlerTest.setUp�s`�����!�����#�#�$G�H�H�H���#�#�$N�O�O�O����!���������^�,�,�,�����.�/�/�/������ 4�Q� 7�� :�>�>�>�?�?�?�����/�0�0�0�����-�.�.�.�����J��)=�a�)@��)C�J�J�J�K�K�K�����.�/�/�/�����_�-�-�-�����A������
���
�
�
r<c���Gd�dt��}Gd�dt��}t��|_|j�||����|j�d||����t
��}|�|j��|j�	|��|�
|j��|�|j
d��dS)Nc�*��eZdZ�fd�Zd�Zd�Z�xZS)�:CDATAHandlerTest.test_handlers.<locals>.TestLexicalHandlerc�H��t��j|i|��||_dSr`rkrns    �r:r�zCCDATAHandlerTest.test_handlers.<locals>.TestLexicalHandler.__init__�rqr<c��d|j_dSr��rmr�rbs r:�
startCDATAzECDATAHandlerTest.test_handlers.<locals>.TestLexicalHandler.startCDATA�s��-1��!�*�*�*r<c��d|j_dS)NFr�rbs r:�endCDATAzCCDATAHandlerTest.test_handlers.<locals>.TestLexicalHandler.endCDATA�s��-2��!�*�*�*r<)rFrGrHr�r�r�rxrys@r:rzr��sV�������
1�
1�
1�
1�
1�
2�
2�
2�
3�
3�
3�
3�
3�
3�
3r<rzc�$��eZdZ�fd�Zd�Z�xZS)�7CDATAHandlerTest.test_handlers.<locals>.TestCharHandlerc�H��t��j|i|��||_dSr`rkrns    �r:r�z@CDATAHandlerTest.test_handlers.<locals>.TestCharHandler.__init__�rqr<c���|dkrh|j}|j|j}|�|d|��|�|d|j��|xjdz
c_dSdS)Nr�rrB)rmr�r�r-r�)r9r��h�ts    r:rzBCDATAHandlerTest.test_handlers.<locals>.TestCharHandler.characters�so���d�?�?��)�A��)�!�,�7�A��M�M�!�A�$��0�0�0��M�M�!�A�$��
�3�3�3��L�L�A�%�L�L�L�L�#�?r<)rFrGrHr�rrxrys@r:�TestCharHandlerr��sG�������
1�
1�
1�
1�
1�
&�
&�
&�
&�
&�
&�
&r<r�r{rW)rrrr[rYr|rr�r]rerjr�r-r�)r9rzr�r�s    r:r}zCDATAHandlerTest.test_handlers�s��		3�		3�		3�		3�		3��		3�		3�		3�	&�	&�	&�	&�	&�n�	&�	&�	&�$�o�o�����%�%�o�o�d�&;�&;�<�<�<�����;���t�$�$�	&�	&�	&������!�!�$�.�1�1�1�����&�!�!�!������'�'�'������!�,�,�,�,�,r<Nr~rIr<r:r�r��s2���������*#-�#-�#-�#-�#-r<r��__main__r`).)Vrfrrrrr�unittestr�SkipTest�xml.sax.saxutilsr	r
rrr
r�xml.sax.expatreaderr�xml.sax.handlerrrr�xml.sax.xmlreaderrrr�iorrr��os.pathr�r��sys�urllib.errorr�urllib.requestr��test.supportrr�test.support.os_helperrrr��TEST_XMLFILE_OUTrS�UnicodeEncodeError�supports_nonascii_filenames�path�supports_unicode_filenamesr��getfilesystemencoding�UnicodeError�	TypeError�
skipUnlessr*r?�TestCaser!rPrUr\r^r�r�r�r�rsrxr|r�r�r�r�rYr[r�r�r�r,rHrRr�rF�mainrIr<r:�<module>r�s}��K�K�K�K�K�K�K�K�K�K�K�K�K�K�����������8��K�M�M�M�M���8�8�8�
�(�
�6�
7�
7�7�8����A�A�A�A�A�A�A�A�A�A�A�A�A�A�A�A�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�K�K�K�K�K�K�K�K�K�K� � � � � � � � �
�
�
�
�����
�
�
�
�
�
�
�
�!�!�!�!�!�!�����"�"�"�"�"�"�!�!�!�!�!�!�3�3�3�3�3�3�3�3��x�
�=�9�9�9���8�N�=�A�A�A��A����� � � ����G�$�$�$�$���A�A�A�
�(�
�?�
@�
@�@�A����#��	�w�)�,�,�� �'�'�(A��(A�(C�(C�D�D�D�D���)�$�,�,�,�',�#�#�#�,����2�h�1�#�.�0�0��
1��2?�2?�2?�2?�2?�(�#�2?�2?�2?�jG�G�G�G�
M�M�M�M�
-�-�-�-�zM�zM�zM�zM�zM��!�zM�zM�zM�x-2�-2�-2�-2�-2�X�&�-2�-2�-2�j18�18�18�18�18�8�$�18�18�18�hN9�N9�N9�N9�N9�X�.�N9�N9�N9�f_Y�_Y�_Y�_Y�_Y�_Y�_Y�_Y�B#�#�#�#�#�z�8�#4�#�#�#�G�G�G�G�G�j�(�"3�G�G�G�
"�
"�
"�
"�
"��
"�
"�
"�	F�	F�	F�	F�	F�Z��):�	F�	F�	F�F�F�F�F�F�:�x�/@�F�F�F�,	9��L�L�L�L�L��)�L�L�L�,
�T�
�D�!�!��Q��6�6�8�8�L�������������������y5�y5�y5�y5�y5�k�y5�y5�y5�D6�6�6�6�6��*�6�6�6�|L�L�L�L�L�K�L�L�L�BVM�VM�VM�VM�VM��*�VM�VM�VM�r9-�9-�9-�9-�9-�x�(�9-�9-�9-�x�z����H�M�O�O�O�O�O��s8�
%�;�9*C$�$C:�'D4�4	E�?E�
I.�.I2�5I2