Sindbad~EG File Manager

Current Path : /proc/2568807/root/usr/local/lib/python3.12/test/__pycache__/
Upload File :
Current File : //proc/2568807/root/usr/local/lib/python3.12/test/__pycache__/test_codecs.cpython-312.opt-1.pyc

�

'Μgx ��*
�ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlm	Z	ddl
mZddlm
Z
	ddlZ	ddlZ	ddlZej$ej&�Zd�Zd�ZGd�d	e�ZGd
�d�ZGd�d
e�ZGd�deej6�ZGd�deej6�ZGd�deej6�ZGd�deej6�ZGd�deej6�Z Gd�deej6�Z!Gd�deej6�Z"Gd�deej6�Z#Gd�dej6�Z$Gd �d!ej6�Z%Gd"�d#e"ej6�Z&Gd$�d%ej6�Z'gd&�Z(e(D]Z)e*e)�d'k7s�e+e,e)���Gd(�d)ej6�Z-gd*�Z.Gd+�d,ej6�Z/Gd-�d.ej6�Z0Gd/�d0ej6�Z1Gd1�d2ej6�Z2Gd3�d4ej6�Z3Gd5�d6ej6�Z4Gd7�d8ej6�Z5gd9�Z6e7ed:�re6jqd;�e7ed<�re6jqd=�d>gZ9Gd?�d@ej6e�Z:GdA�dBej6�Z;GdC�dDej6�Z<GdE�dFej6�Z=GdG�dHeej6�Z>GdI�dJeej6�Z?GdK�dLej6�Z@GdM�dNej6�ZAGdO�dPej6�ZBgdQ�ZCdRdSgdTggdU�dVgdWgdX�ZD	ddlEZEeCjqdY�dZd[geDdY<	ddlFZFeCjqd\�d]geDd\<Gd^�d_ej6�ZGiZHd`�ZIGda�dbej6�ZJej�ej�dck(dd�Gde�dfej6��ZMGdg�dhej6�ZNGdi�djej6�ZOGdk�dlej6�ZPej�edudm�Gdn�doej6��ZRGdp�dqej6�ZSGdr�dsej6�ZTGdt�duej6�ZUeVdvk(rej��yy#e$rdZY���wxYw#e$rdZY���wxYw#e$rdZdZY���wxYw#e$rdZEY��|wxYw#e$rY��lwxYw)w�N)�mock)�support)�	os_helper���c������fd�}|S)Nc�L���j�|�|t|�f�y�N)�assertEqual�len)�input�expect�coder�selfs  ���-/usr/local/lib/python3.12/test/test_codecs.py�checkzcoding_checker.<locals>.check!s �������u����E�
�';�<��)rrrs`` r�coding_checkerr s
���=��Lrc���
���
���ddlm}m}m}ddlm}m�
m�m�m	}d�d�d�
G�
���
��fd�dtj�}||�|||��}|d	|d
�f�}|�}	||d|	�S)Nr)�POINTER�WINFUNCTYPE�WinDLL)�BOOL�BYTE�WCHAR�UINT�DWORD��ic�Z��eZdZdW�fdW�W�zfdW�W�zfdW�fdW�fdW�W�zfgZy)�'is_code_page_present.<locals>.CPINFOEXW�MaxCharSize�DefaultChar�LeadByte�UnicodeDefaultChar�CodePage�CodePageNameN)�__name__�
__module__�__qualname__�_fields_)r�MAX_DEFAULTCHAR�
MAX_LEADBYTES�MAX_PATHrrs������r�	CPINFOEXWr!-sH���"�D�)�"�D��$8�9���m�!3�4�)�5�1���&�#�U�8�^�4�6�rr/�GetCPInfoExW�kernel32)�ctypesrrr�ctypes.wintypesrrrrr�	Structure)�cprrrrrr/�	prototype�GetCPInfoEx�inforr,r-r.rrs          @@@@@@r�is_code_page_presentr9&sv���3�3�>�>��M��O��H�6�6�F�$�$�6��D�$��w�y�/A�B�I��^�V�J�-?�@�A�K��;�D��r�1�d�#�#rc�$�eZdZdZd�Zd�Zdd�Zy)�QueuezF
    queue: write bytes at one end, read bytes from the other end
    c��||_yr	��_buffer)r�buffers  r�__init__zQueue.__init__>s	����rc�.�|xj|z
c_yr	r=)r�charss  r�writezQueue.writeAs�������rc��|dkr"|j}|jdd|_|S|jd|}|j|d|_|S�Nrr=)r�size�ss   r�readz
Queue.readDsP����6����A��<�<���+�D�L��H����U�d�#�A��<�<���.�D�L��HrN)r)r(r)r*�__doc__r@rCrHrrrr;r;:s�����rr;c��eZdZd�Zd�Zy)�MixInCheckStateHandlingc�\�tt|�dz�D�]}tj|��}|j	|d|�}|j�}|j
|dt�|ds]|j|ddddf�|j|j	|d��|j||j��tj|��}|j|�|j	||dd�}|j|||z���y)N�rT)�ranger�codecs�getincrementaldecoder�decode�getstate�assertIsInstance�int�setstate�
assertTruer
�	r�encoding�urG�i�d�part1�state�part2s	         r�check_state_handling_decodez3MixInCheckStateHandling.check_state_handling_decodePs���s�1�v�a�x��A�6��,�,�X�6�8�A��H�H�Q�r��U�O�E��J�J�L�E��!�!�%��(�C�0���8��
�
�E�!�H�R�a�L�!�,�-����A�H�H�U�1�X�$6� 6�7�� � ���
�
��5�7��,�,�X�6�8�A�
�J�J�u���H�H�Q�q�r�U�D�)�E����Q��e��,�'!rc�b�tt|�dz�D]�}tj|��}|j	|d|�}|j�}tj|��}|j
|�|j	||dd�}|j|||z���y)NrMT)rNrrO�getincrementalencoder�encoderRrUr
rWs	         r�check_state_handling_encodez3MixInCheckStateHandling.check_state_handling_encodefs����s�1�v�a�x��A�6��,�,�X�6�8�A��H�H�Q�r��U�O�E��J�J�L�E�6��,�,�X�6�8�A�
�J�J�u���H�H�Q�q�r�U�D�)�E����Q��e��,�!rN)r(r)r*r_rcrrrrKrKOs��-�,-rrKc�F�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	dZ
d	�Zd
�Zy)�ReadTestc
��td�}tj|j�|�}d}t	|j|j�|d��D]E\}}|j
t|g��||j�z
}|j||��G|j|j�d�|j|jd�tj|j��}d}t	|j|j�|d��D]5\}}||jt|g��z
}|j||��7|j|jdd�d�|j|jd�|j�d}t	|j|j�|d��D]5\}}||jt|g��z
}|j||��7|j|jdd�d�|j|jd�|j|j�}	|j|djtj |	D�cgc]}t|g���c}|j���ycc}w)Nr�T��strict)r;rO�	getreaderrX�ziprbrC�bytesrHr
�
bytebufferrPrQr?�reset�join�
iterdecode)
rr�partialresults�q�r�result�c�
partialresultr[�encodeds
          r�
check_partialzReadTest.check_partialrs>��

�#�J��+�F���T�]�]�+�A�.����"%�e�l�l�4�=�=�&A�>�Z^�"_��Q�
�
�G�G�E�1�#�J���a�f�f�h��F����V�]�3�#`�
	
�������2�&�������s�+�
8�F�(�(����7�9����"%�e�l�l�4�=�=�&A�>�Z^�"_��Q�
��a�h�h�u�a�S�z�*�*�F����V�]�3�#`�	
������#�t�,�b�1�������3�'�	
���	���"%�e�l�l�4�=�=�&A�>�Z^�"_��Q�
��a�h�h�u�a�S�z�*�*�F����V�]�3�#`�	
������#�t�,�b�1�������3�'��,�,�t�}�}�-�������G�G�F�%�%�7�&C�7�a�u�a�S�z�7�&C�T�]�]�S�T�	
��&Cs�Kc�>����fd��d�fd�	}d}d}d}�j||d�|��j||d�|��j||dd�|��j||dd�|�d	}g}g}t|�D]<\}}	|j|d
zd
zdz|	z�|j|d
zd
zdz��>�j|dj|�d�d
j|���j|dj|�d�d
j|��t	d�D]�}
|D]�}	d|
dz|	zdzz}�|�}t	d�D]L}�j|jd��|
dz|	z��j|jd��d��N�|�}t	d�D]I}�j|jd��|
dz��j|jd��d��K����y)Nc���tj|j�j��}t	j
�j�|�Sr	��io�BytesIOrbrXrOrj)r�streamrs  �rrjz)ReadTest.test_readline.<locals>.getreader�s:����Z�Z����T�]�]� ;�<�F�2�6�#�#�D�M�M�2�6�:�:rTc����|�}g}	|j||��}|sn|j|��(dj|�S)N)rF�keepends�|)�readline�appendro)rr�rF�reader�lines�linerjs      �r�readalllinesz,ReadTest.test_readline.<locals>.readalllines�sN����u�%�F��E�����D�8��D�������T�"�	�
�8�8�E�?�"rufoo
bar
baz
spam
eggsufoo
|bar
|baz
|spam
|eggszfoo|bar|baz|spam|eggsF�
)�
�
�
u
��uあrgr��P�azxxx
�r��xxx)TN)r
�	enumerater�rorNr�)
rr�rG�	sexpected�sexpectednoends�lineends�vw�vworZ�lineendrFr�rjs
`           @r�
test_readlinezReadTest.test_readline�s���	;�	#�
.��9�	�1������a��.�	�:�����a��/��A�����a��r�2�I�>�����a���3�_�E�1��
����%�h�/�L�Q���I�I�q��u�S�y�(�*�W�4�5��J�J��#��c�	�8�+�,�0�	
����b�g�g�b�k�4�8�#�(�(�2�,�G�����b�g�g�b�k�5�9�3�8�8�C�=�I��"�I�D�#����S��7�*�W�4�5��"�1����r��A��$�$������6��S��7�*���$�$������6���#�#�1����r��A��$�$������7��S����$�$������7���#�$�rc�`���gd�}dj|����fd�}|�}�j|j�|d��j|j�dj|dd���j|j�d�|�}�j|j�|d��j|jd�|dd��j|jd�d��j|jd��t	|d�dzddd�|�}�j|j�|d��j|j�|dd��j|j�d�|�}�j|jdd�	��dd��j|j��dd��j|j�d�|�}�j|jdd�	��dd��j|jd��d��j|jd�d��j|jd��d
d�|�}�j|jdd�	��dd��j|j�|dddg|ddz��j|j�d�y)N)zHumpty Dumpty sat on a wall,
z!Humpty Dumpty had a great fall.
z-All the king's horses and all the king's men
z#Couldn't put Humpty together again.rgc���tj�j�j��}t	j
�j�|�Sr	r{)r~�datars ��rrjz8ReadTest.test_mixed_readline_and_read.<locals>.getreader�s:����Z�Z����D�M�M� :�;�F�2�6�#�#�D�M�M�2�6�:�:rrrM�d�(�)rFrB��j)ror
r�rHr�	readlines)rr�rj�fr�s`   @r�test_mixed_readline_and_readz%ReadTest.test_mixed_readline_and_read�s����8���w�w�u�~��	;�

�K���������u�Q�x�0��������2�7�7�5���9�#5�6��������2�&�
�K���������u�Q�x�0���������E�!�H�Q�K�0���������B�'���������d�3�u�Q�x�=�1�+<�+=�&>�t��&D�E�
�K���������u�Q�x�0���������a�b�	�2��������2�&�
�K��������R�q��1�4���8�<��������4���8�,��������2�&�
�K��������R�q��1�4���8�<���������D��G�,���������B�'���������d�1�S�k�2�
�K��������R�q��1�4���8�<���������q��!�"����q�r��(B�C��������2�&rc� �gd�}tjdj|�j|j��}tj|j�|�}t|�D]\}}|j|||��y)N)=z:<%!--===================================================
z,    BLOG index page: show recent articles,
z7    today's articles, or articles of a specific date.
z>========================================================--%>
z!<%@inputencoding="ISO-8859-1"%>
z<%@pagetemplate=TEMPLATE.y%>
z$<%@import=import frog.util, frog%>
z!<%@import=import frog.objects%>
z9<%@import=from frog.storageerrors import StorageError%>
z<%
r�zimport logging
z+log=logging.getLogger("Snakelets.logger")
r�r�zuser=self.SessionCtx.user
z-storageEngine=self.SessionCtx.storageEngine
r�r�z-def readArticlesFromDate(date, count=None):
z2    entryids=storageEngine.listBlogEntries(date)
z%    entryids.reverse() # descending
z    if count:
z#        entryids=entryids[:count]
z
    try:
z\        return [ frog.objects.BlogEntry.load(storageEngine, date, Id) for Id in entryids ]
z    except StorageError,x:
z6        log.error("Error loading articles: "+str(x))
z,        self.abort("cannot load articles")
r�zshowdate=None
r�zarg=self.Request.getArg()
zif arg=="today":
z,    #-------------------- TODAY'S ARTICLES
z-    self.write("<h2>Today's articles</h2>")
z(    showdate = frog.util.isodatestr() 
�.    entries = readArticlesFromDate(showdate)
zelif arg=="active":
z4    #-------------------- ACTIVE ARTICLES redirect
z     self.Yredirect("active.y")
zelif arg=="login":
z/    #-------------------- LOGIN PAGE redirect
z    self.Yredirect("login.y")
zelif arg=="date":
z7    #-------------------- ARTICLES OF A SPECIFIC DATE
z2    showdate = self.Request.getParameter("date")
zV    self.write("<h2>Articles written on %s</h2>"% frog.util.mediumdatestr(showdate))
r�zelse:
z+    #-------------------- RECENT ARTICLES
z,    self.write("<h2>Recent articles</h2>")
z.    dates=storageEngine.listBlogEntryDates()
z    if dates:
z        entries=[]
z        SHOWAMOUNT=10
z         for showdate in dates:
zW            entries.extend( readArticlesFromDate(showdate, SHOWAMOUNT-len(entries)) )
z*            if len(entries)>=SHOWAMOUNT:
z                break
z                
rg)	r|r}rorbrXrOrjr�r
)rrGr~r�rZr�s      r�test_bug1175396zReadTest.test_bug1175396ss��>
��~���B�G�G�A�J�-�-�d�m�m�<�=��0��!�!�$�-�-�0��8��"�6�*�I�Q�����T�1�Q�4�(�+rc��td�}tj|j�|�}tj|j�|�}|jd�|j
|jd��d�|jd�|j
|jd��d�|j
|jd��d�|jd	�|j
|jd��d	�|j
|jd��d�|jd�|j
|jd
��d�|jd�|j
|jd
��d�|j
|jd
��d�|jd	�|j
|jd
��d	�|j
|jd
��d�|jd
�|j
|jd
��d
�y)Nrzfoo
Fr��fooz
bar
rg�bar�bazTr�zbar
zfoo
)r;rO�	getwriterrXrjrCr
r�)rrr�writerr�s    r�test_readlinequeuezReadTest.test_readlinequeueMs����#�J��0��!�!�$�-�-�0��3��0��!�!�$�-�-�0��3��	���W��������%��8�%�@����Y��������%��8�"�=�������%��8�%�@����U��������%��8�%�@�������%��8�"�=�	���W��������$��7��A����Y��������$��7��>�������$��7��A����U��������$��7��?�������$��7��<����Y��������$��7��Crc���d}d}d}||z|zj|j�}tj|�}t	j
|j�|�}|j
|j�|�|j
|j�|�|j
|j�|�|j
|j�d�y)NzAxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
z`offending line: ladfj askldfj klasdj fskla dfzaskdj fasklfj laskd fjasklfzzzzaa%whereisthis!!!
znext line.
rg�rbrXr|r}rOrjr
r�)r�s1�s2�s3rGr~r�s       r�test_bug1098990_azReadTest.test_bug1098990_ahs���
R��
q��
��
��U�2�X���d�m�m�,�����A���0��!�!�$�-�-�0��8��������*�B�/�������*�B�/�������*�B�/�������*�B�/rc�Z�d}d}d}d}d}||z|z|z|zj|j�}tj|�}t	j
|j�|�}|j
|j�|�|j
|j�|�|j
|j�|�|j
|j�|�|j
|j�|�|j
|j�d�y)Nzaaaaaaaaaaaaaaaaaaaaaaaa
zbbbbbbbbbbbbbbbbbbbbbbbb
zstillokay:bbbbxx
zbroken!!!!badbad
zagainokay.
rgr�)	rr�r�r��s4�s5rGr~r�s	         r�test_bug1098990_bzReadTest.test_bug1098990_bus���
+��
+��
#��
#��
��
��U�2�X�b�[��^�#�#�D�M�M�2�����A���0��!�!�$�-�-�0��8��������*�B�/�������*�B�/�������*�B�/�������*�B�/�������*�B�/�������*�B�/r��c���|jtdj|j�|j	dj|jd�dj|j��|j	dj|jd�dj|j��|j	dj|jd�dj|j��|j	dj|jd�d	j|j��|j	dj|jd
�dj|j��|j	dj|jd�d	j|j��|j	dj|jd
�d
j|j��dj|j�}dD�]�\}}|j|j�t|�d}|j|j�t|�d}|dz|z}||z|jz|z}|jt|j|j�|j	|j|jd�|�|j	|j|jd�|�|j	|j|jd�||z�|j	|j|jd
�||jz|z�djd�|jD��}|j	|j|jd�||z|z����y)Nu��[�]�backslashreplacez[\udc80]�namereplace�xmlcharrefreplacez
[&#56448;]�ignore�[]�replacez[?]�[��]z[??]rg))�𐿿�A)�[�])r�r����
surrogatepassc3�&K�|]	}d|z���y�w)�\x%02xNr)�.0�bs  r�	<genexpr>z0ReadTest.test_lone_surrogates.<locals>.<genexpr>�s����'J�0H�1�(1�1�}�0H�s�)�assertRaises�UnicodeEncodeErrorrbrXr
r�ill_formed_sequence�UnicodeDecodeErrorrQ�ill_formed_sequence_replacero)	r�bom�before�after�before_sequence�after_sequence�test_string�
test_sequencer�s	         r�test_lone_surrogateszReadTest.test_lone_surrogates�s5�����,�h�o�o�t�}�}�M�����*�*�4�=�=�:L�M�$�+�+�D�M�M�:�	<�����*�*�4�=�=�-�H�$�+�+�D�M�M�:�	<�����*�*�4�=�=�:M�N�%�,�,�T�]�]�;�	=�����*�*�4�=�=�(�C����T�]�]�3�	5�����*�*�4�=�=�)�D����d�m�m�4�	6�	
���)�0�0�����I����T�]�]�3�	5����)�0�0����	�J����t�}�}�5�	7��i�i��
�
�&��3�M�F�E�$�m�m�D�M�M�:�3�s�8�9�E�O�"�\�\�$�-�-�8��S���C�N� �8�+�e�3�K� �?�2�!�5�5�6�8F�G�M����0�-�2F�2F�"�m�m�
-����[�/�/��
�
�0?�A�*�
,�
���]�1�1�$�-�-�2A�C�(�
*�
���]�1�1�$�-�-��J�#�e�^�
-����]�1�1�$�-�-��K�#�d�&F�&F�F��N�
P�!�w�w�'J�04�0H�0H�'J� J�����]�1�1�$�-�-�AS�T�#�&6�6��>�
@�+3rc��dj|jd�}tdt|��D]p}t	j
|j�d�}|j
|j|d|�d�|j
|j||dd�d��rdj|jd�}tdt|��D]o}t	j
|j�d�}|j
|j|d|�d�|j
|j||d�d��qy)Nu�r�rMrgTu�)rbrXrNrrOrPr
rQ)rr�rZ�decs    r�test_incremental_surrogatepassz'ReadTest.test_incremental_surrogatepass�s�����t�}�}�o�>���q�#�d�)�$�A�=�&�.�.�t�}�}�=�o�N�C����S�Z�Z��R�a��1�2�6����S�Z�Z��Q�R��$�7��B�%�
���t�}�}�o�>���q�#�d�)�$�A�=�&�.�.�t�}�}�=�o�N�C����S�Z�Z��R�a��1�2�6����S�Z�Z��Q�R��1�8�<�%rN)
r(r)r*rxr�r�r�r�r�r�r�r�r�rrrrereqs?��)
�V9�v.'�`C)�JD�60�0�"#+��*@�X=rrec�j�eZdZdZej
dk(rdZndZdZdZd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zy)�	UTF32Test�utf-32�little����܀s$��spamspams$��spamspamc��tj|j�\}}}}tj�}||�}|jd�|jd�|j
�}|j||jk(xs||jk(�tj|�}||�}|j|j�d�y�N�spam�spamspam�rO�lookuprXr|r}rC�getvaluerV�spamle�spamber
rH�r�_r�r�rGr�r[s       r�test_only_one_bomzUTF32Test.test_only_one_bom����"�M�M�$�-�-�8���!�F�6��J�J�L���1�I��	�����	�����
�J�J�L������T�[�[�(�<�A����,<�=��J�J�q�M���1�I���������:�.rc�l�tjd�}tj|j�|�}|jt|j�tjd�}tj|j�|�}|jt|j�y)N�����s���������r|r}rOrjrXr��UnicodeErrorrH�rrGr�s   r�test_badbomzUTF32Test.test_badbom�s|���J�J�y�!��+�F���T�]�]�+�A�.�����,����/��J�J�y�!��+�F���T�]�]�+�A�.�����,����/rc�,�|jdgd��y)N�ÿĀ￿𐀀)rgrgrgrgrgrgrg�r�r�r��ÿr�r�r��ÿĀr�r�r��ÿĀ￿r�r�r�r��rx�rs r�test_partialzUTF32Test.test_partial�s�����,�
�	
rc��|jdtjddd��|jdtjddd��y�N)r�rM�r�T)rgrMr��r
rO�
utf_32_decoder�s r�
test_handlerszUTF32Test.test_handlers
�H�������-�-�g�y�$�G�	I������-�-�g�x��F�	Hrc�R�|jttjddd�y�N��riT)r�r�rOrr�s r�test_errorszUTF32Test.test_errors�"�����,�f�.B�.B�!�8�T�	3rc��|j|jd|j�|j|jd|j�y�Nr��r_rXr�r�r�s r�test_decoder_statezUTF32Test.test_decoder_state�>���(�(����)3�T�[�[�	B��(�(����)3�T�[�[�	Brc��d}|jdtj|�d�d}|jdtj|�d�y)Ns���𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀rs��r)r�
encoded_le�
encoded_bes   r�test_issue8941zUTF32Test.test_issue8941sW��F�
����,��-�-�j�9�!�<�	>�E�
����,��-�-�j�9�!�<�	>rN)r(r)r*rX�sys�	byteorderr�r�r�r�r�r�rr	rrrrrr�r��sT���H�
�}�}�� �1��1��F�F�F�F�
/�0�
�>H�3�B�>rr�c�,�eZdZdZdZd�Zd�Zd�Zd�Zy)�UTF32LETest�	utf-32-ler�c�,�|jdgd��y�Nr�)rgrgrgr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�s rr�zUTF32LETest.test_partial)������,�
�	
rc�Z�|jdj|j�d�y)N�𐈃s�r
rbrXr�s r�test_simplezUTF32LETest.test_simpleD�"������,�,�T�]�]�;�=P�Qrc�R�|jttjddd�yr)r�r�rO�utf_32_le_decoder�s rr	zUTF32LETest.test_errorsG�"�����,�f�.E�.E�!�8�T�	3rc�X�d}|jdtj|�d�y)Nsrr)r
rOr#�rrws  rrzUTF32LETest.test_issue8941K�-��-�����,��0�0��9�!�<�	>rN�	r(r)r*rXr�r�r r	rrrrrr%�"���H�-��
�6R�3�>rrc�,�eZdZdZdZd�Zd�Zd�Zd�Zy)�UTF32BETest�	utf-32-ber�c�,�|jdgd��yrr�r�s rr�zUTF32BETest.test_partialWrrc�Z�|jdj|j�d�y)Nrsrr�s rr zUTF32BETest.test_simplerr!rc�R�|jttjddd�yr)r�r�rO�utf_32_be_decoder�s rr	zUTF32BETest.test_errorsur$rc�X�d}|jdtj|�d�y)Nsrr)r
rOr0r&s  rrzUTF32BETest.test_issue8941yr'rNr(rrrr+r+Sr)rr+c�p�eZdZdZej
dk(rdZndZdZdZd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zy)�	UTF16Test�utf-16r�����܀s��spamspams��spamspamc��tj|j�\}}}}tj�}||�}|jd�|jd�|j
�}|j||jk(xs||jk(�tj|�}||�}|j|j�d�yr�r�r�s       rr�zUTF16Test.test_only_one_bom�r�rc�l�tjd�}tj|j�|�}|jt|j�tjd�}tj|j�|�}|jt|j�y)Ns��r�r�r�s   rr�zUTF16Test.test_badbom�s}���J�J�{�#��+�F���T�]�]�+�A�.�����,����/��J�J�*�+��+�F���T�]�]�+�A�.�����,����/rc�,�|jdgd��y)Nr�)rgrgrgr�r�r�r�r�r�r�r�r�r�r�r�r�s rr�zUTF16Test.test_partial�s�����,�
�	
rc��|jdtjddd��|jdtjddd��yr)r
rO�
utf_16_decoder�s rrzUTF16Test.test_handlers�rrc�R�|jttjddd�yr)r�r�rOr;r�s rr	zUTF16Test.test_errors�r
rc��|j|jd|j�|j|jd|j�yrr
r�s rrzUTF16Test.test_decoder_state�rrc���d}|j|j�}|jtjtj
�t
tj
d�5}|j|�ddd�tjtj
d|j��5}|j|j�|�ddd�y#1swY�cxYw#1swYyxYw)NzHello
world
�wbrs�rX)rbrX�
addCleanupr�unlink�TESTFN�openrCrOr
rH)rr�rG�fpr�s     r�test_bug691291zUTF16Test.test_bug691291�s���
"���I�I�d�m�m�$�����	�(�(�)�*:�*:�;�
�)�"�"�D�
)�R��H�H�Q�K�*�
�[�[��)�)�3�"&�-�-�1�4:����V�[�[�]�B�/�1�1�*�
)��1�1�s�&C�0!C&�C#�&C/c��dD]u}|jt�5}tjtj
||j��ddd�|jdtj���wdD]u}|jt�5}tjtj
||j��ddd�|jdtj���wy#1swY��xYw#1swY�=xYw)N)�U�rUzr+Ur@zinvalid mode)�rt�wt�atzr+tz'can't have text and binary mode at once)
r��
ValueErrorrOrDrrCrX�assertIn�str�	exception)r�mode�cms   r�test_invalid_modeszUTF16Test.test_invalid_modes�s���&�D��"�"�:�.�"����I�,�,�d�T�]�]�K�/��M�M�.�#�b�l�l�*;�<�'�
.�D��"�"�:�.�"����I�,�,�d�T�]�]�K�/��M�M�C��b�l�l�+�
-�.�	/�.��
/�.�s�1C6�1D�6C?	�D	N)r(r)r*rXrrr�r�r�r�r�r�rr	rrFrSrrrr3r3�sS���H�
�}�}�� �)��)��
@�F�
@�F�
/�0�
�*H�3�B�
0�
-rr3c�&�eZdZdZdZd�Zd�Zd�Zy)�UTF16LETest�	utf-16-ler5c�,�|jdgd��y�Nr�)rgr�r�r�r�r�r�r�r�r�r�r�r�r�s rr�zUTF16LETest.test_partial�������,�

�	
rc��gd�}|D]N\}}|jttj|dd�|j	|jdd�|��Py)N)�rr�)sAZ�A�)s	ABCDZ�ABCD�)s�r�)s�Ar�)s�A��A)s�Ar^riTzutf-16ler�)r�r�rO�utf_16_le_decoder
rQ�r�tests�raw�expecteds    rr	zUTF16LETest.test_errors��T��
��#�M�C�����0�&�2I�2I�!�8�T�
3����S�Z�Z�
�I�>��I�#rc��|jdj|j�d�|jdj|j�d�y)Nrs�ީr
rbrXrQr�s r�test_nonbmpzUTF16LETest.test_nonbmp
�G������,�,�T�]�]�;�,�	.����,�3�3�D�M�M�B�%�	'rN�r(r)r*rXr�r�r	rgrrrrUrU�����H�%��
�&
J�'rrUc�&�eZdZdZdZd�Zd�Zd�Zy)�UTF16BETest�	utf-16-ber6c�,�|jdgd��yrXr�r�s rr�zUTF16BETest.test_partialrYrc��gd�}|D]N\}}|jttj|dd�|j	|jdd�|��Py)N)r[)sA�r\)s	ABCDZr])s�r�)s��r�)s�Ar^)s�Ar^riTzutf-16ber�)r�r�rO�utf_16_be_decoder
rQr`s    rr	zUTF16BETest.test_errors'rdrc��|jdj|j�d�|jdj|j�d�y)Nrs��rfr�s rrgzUTF16BETest.test_nonbmp6rhrNrirrrrlrlrjrrlc�L��eZdZdZdZdZdZd�Zd�Zd�Z	�fd�Z
d	�Zd
�Z�xZ
S)�UTF8Test�utf-8s�u	���rc�,�|jdgd��y)N�ÿ߿ࠀ￿𐀀)r�r�r�r��ÿ߿rwrw�ÿ߿ࠀrxrx�ÿ߿ࠀ￿ryryryrvr�r�s rr�zUTF8Test.test_partialBs�����2�
�	
rc�t�d}|j|j||j|j��y)Nu€ÿĀ߿ࠀ￿􏿿)r_rXrb)rrYs  rrzUTF8Test.test_decoder_stateXs.��@���(�(����)*�A�H�H�T�]�]�,C�	Erc���dD]O\}}}|j|||��5|j|j|j|�|�ddd��Qy#1swY�\xYw)N�)�[��]r�r�)r}r�u[��])r}�surrogateescape�[��])r}r�z
[\x80\xff]�r��
error_handlerrc)�subTestr
rQrX�rr�r�rcs    r�test_decode_errorzUTF8Test.test_decode_error]sf��.
�)�D�-�����4�}�'/��1�� � ����T�]�]�M�!J�!)�+�1�1�
.
�1�1�s�-A�A	c���t�|��|jdj|jd�|j
dz�|j
t�5}dj|jd�ddd�j}|j|j|j|jd�y#1swY�IxYw)Nr�r~s[�]u[���]u��)�superr�r
rbrX�BOMr�r�rP�object�start�end)rrR�exc�	__class__s   �rr�zUTF8Test.test_lone_surrogatesis����
��$�&�	
����*�*�4�=�=�:K�L����I�-�	/��
�
�1�
2�b�"�)�)�$�-�-�9J�K�3��l�l��������C�I�I�c�g�g�6��G�3�
2�s�C�Cc�j�|jdj|jd�|jdz�|jdj|jd�|jdz�|jdj|jd�|jdz�|jdj	|jd�d�|jdj	|jd�d�|jt
jd��|jt�5dj	|jd�ddd�|jt�5d	j	|jd�ddd�y#1swY�DxYw#1swYyxYw)
Nu	abc�defr�s	abc�defu𐿿�s𐿿�r�s[��]sabc�sabc�z)
r
rbrXr�rQrVrO�lookup_errorr�r�r�s r�test_surrogatepass_handlerz#UTF8Test.test_surrogatepass_handlerusX������.�.�t�}�}�o�N����$9�9�	;����+�2�2�4�=�=�/�R����$C�C�	E����)�0�0�����P����$A�A�	C�	
���.�5�5�d�m�m�_�U�'�	)����8�?�?��
�
��_�+�	-�	
����+�+�O�<�=�
�
�
�1�
2��!�!�$�-�-��A�3�
�
�
�1�
2��"�"�4�=�=�/�B�3�
2�3�
2��
2�
2�s�=F�7F)�F&�)F2c�X�gd�}dD]}dD]}|j||z���|jd�|D]b}|j|��5tj|j
��}|j
t|j|�ddd��dy#1swY�oxYw)N)������������r)������s���s���s�s���s�s�)�r�)s�s�s�s�s�s�s�r�)	r��extendr�rOrPrXr�r�rQ)r�cases�prefix�suffixr�r�s      r�test_incremental_errorsz UTF8Test.test_incremental_errors�s���P��>�F�+�����V�f�_�-�+�>�
	���N�	O��D����4��(�A�f�2�2�4�=�=�A�C���!�!�"4�c�j�j�$�G�)�(��(�(�s
�AB � B)	)r(r)r*rXr�r�r�r�rr�r�r�r��
__classcell__�r�s@rrsrs<s;����H�)��".��

�C�
�,E�

+�
H�C�&Hrrsc�.�eZdZdZd�Zd�Zd�Zd�Zd�Zy)�UTF7Test�utf-7c�z�d}|j|j|j�|jd��|j|jd�j|j�|�d}|j|j|j�|jd��|j|jd�j|j�|�|jdj|j�d�|jdj|j�d�d}|j|j|j�|jd��|j|jd�j|j�|�dj	tt
ttd��j��t
||zd	z|z�z
��}|j|j|j�d
�y)NzGABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'(),-./:?�asciiz !"#$%&*;<=>@[]^_`{|}za+bsa+-bz 	

rg��+sX+AAAAAQACAAMABAAFAAYABwAIAAsADAAOAA8AEAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwBcAH4Afw-)	r
rbrXrQro�sorted�setrlrN)r�set_d�set_o�ws�other_asciis     r�
test_asciizUTF7Test.test_ascii�s�����	
������d�m�m�4�e�l�l�7�6K�L�������g�.�5�5�d�m�m�D�e�L�'��������d�m�m�4�e�l�l�7�6K�L�������g�.�5�5�d�m�m�D�e�L�������d�m�m�4�g�>��������
�
�6��>�
��������4�=�=�1�2�9�9�W�3E�F�������7�+�2�2�4�=�=�A�2�F��g�g�f�S��u�T�{�);�)B�)B�)D�%E�%(�����)<�r�)A�%B�&C�D�E������+�+�D�M�M�:�D�	Erc�,�|jdgd��y)N�a+-bc€dĀe𐀀f) r�r��a+za+-�a+-br�r�r�r�za+-b�a+-bcr�r�r�r�ua+-bc€�	a+-bc€dr�r�r�r�ua+-bc€dĀ�a+-bc€dĀer�r�r�r�r�r�r�ua+-bc€dĀe𐀀r�r�r�s rr�zUTF7Test.test_partial�������.�!
�$	
rc	��gd�}|D]i\}}|j|��5|jttj|dd�|j|j
dd�|�ddd��ky#1swY�vxYw)N))s�bu�b)sa�b�a�b)sa��bua��b)sa+IK�a�)sa+IK-br�)sa+IK,br�)sa+IKx�a€�)sa+IKx-b�a€�b)sa+IKwgrr�)s	a+IKwgr-br�)sa+IKwgr,r�)s
a+IKwgr,-bu	a€�-b)sa+IKwgrB�
a€€�)s
a+IKwgrB-b�a€€�b)s
a+/,+IKw-b�a�€b)sa+//,+IKw-br�)sa+///,+IKw-b�a￿�€b)s
a+////,+IKw-br�)sa+IKw-b�ua€b�)sa+IKw�br�)sa+@br��rbriTr�r�)r�r�r�rO�utf_7_decoder
rQr`s    rr	zUTF7Test.test_errors�sq��
��.#�M�C�����#��&��!�!�"4�f�6I�6I� #�X�t�5�� � ����G�Y�!?��J�'�&�#�&�&�s�A
A4�4A=	c�`�|jdj|j�d�|jdj|j�d�|jdj|j�d�|jdj|j�d�|jdj|j�d�|jdj|j�d�|jdj|j�d�|jdj|j�d	�|jd	j|j�d�|jd
j|j�d�y)Nu𐒠s+2AHcoA-u��s+2AHcoAu€𐒠s
+IKzYAdyg-s	+IKzYAdygu
€€𐒠s
+IKwgrNgB3KA-s+IKwgrNgB3KArfr�s rrgzUTF7Test.test_nonbmp�sF������,�,�T�]�]�;�[�I�����.�.�t�}�}�=�{�K�����+�+�D�M�M�:�L�I�����*�*�4�=�=�9�<�H����+�2�2�4�=�=�A�=�Q�����-�-�d�m�m�<�>P�Q�����,�,�T�]�]�;�=O�P����1�8�8����G�)�	+����)�0�0����?�1�	3�����/�/��
�
�>�1�	3rc��gd�}|D]B\}}|j|��5|j|jdd�|�ddd��Dy#1swY�OxYw)N)
)sa+2AE-bua�b)sa+2AE�br�)sa+2AEr�)sa+2AEA-br�)sa+2AH-br�)s
a+IKzYAQ-bua€�b)s
a+IKzYAQ�br�)sa+IKzYAQA-br�)s
a+IKzYAd-br�)sa+IKwgrNgB-bua€€�b)sa+IKwgrNgB�br�)s
a+IKwgrNgBr�)s
a+IKwgrNgBA-br�r�r�r��r�r
rQr`s    rr�zUTF7Test.test_lone_surrogatessQ��
��#�M�C�����#��&�� � ����G�Y�!?��J�'�&�#�&�&�s�#A
�
A	N)	r(r)r*rXr�r�r	rgr�rrrr�r��s$���H�E�4%
�NK�<
3�Krr�c��eZdZd�Zd�Zy)�UTF16ExTestc�T�|jttjdddd�y)NrrirT)r�r�rO�utf_16_ex_decoder�s rr	zUTF16ExTest.test_errors"s$�����,�f�.E�.E�w�PX�Z[�]a�brc�L�|jttj�yr	)r��	TypeErrorrOr�r�s r�
test_bad_argszUTF16ExTest.test_bad_args%s�����)�V�%<�%<�=rN)r(r)r*r	r�rrrr�r� s
��c�>rr�c��eZdZd�Zd�Zd�Zy)�ReadBufferTestc�v�ddl}|jtj|jdd��d�y)Nrr��spam)r��)�arrayr
rO�readbuffer_encode)rr�s  r�
test_arrayzReadBufferTest.test_array*s/�������$�$�U�[�[��g�%>�?��	
rc�N�|jtjd�d�y)Nrg�rr)r
rOr�r�s r�
test_emptyzReadBufferTest.test_empty1s������1�1�"�5�x�@rc��|jttj�|jttjd�y�N�*)r�r�rOr�r�s rr�zReadBufferTest.test_bad_args4s0�����)�V�%=�%=�>����)�V�%=�%=�r�BrN)r(r)r*r�r�r�rrrr�r�(s��
�A�Crr�c�F�eZdZdZej
Zd�Zd�Zd�Z	d�Z
d�Zy)�UTF8SigTest�	utf-8-sigc�,�|jdgd��y)N�ÿ߿ࠀ￿𐀀)rgrgrgrgrgu�r��ÿr��ÿ߿r�r��ÿ߿ࠀr�r��ÿ߿ࠀ￿r�r�r�r�r�r�s rr�zUTF8SigTest.test_partial<s�����8�
�	
rc�<�|jtdd�d�y)N�r�rg�r
rOr�s r�test_bug1601501zUTF8SigTest.test_bug1601501Xs������_�k�:�B�?rc��tjd��}d}|j|j|j	d��|�y)Nr�r�)rOrPr
rQrb)rr[rGs   r�test_bomzUTF8SigTest.test_bom\s>��5�F�(�(��5�7����������!�(�(�;�"7�8�!�<rc��d}tjdz}tjd�}dgtt	dd��zgd�zD]�}|tj|��}tj�}	|�|j|�}n|j�}|sn|j|��9|j�}|j||���y�NuABC¡∀XYZsABC¡∀XYZr�rM�)�@r���i)rO�BOM_UTF8rj�listrNr|r}�StringIOrHrCr�r
�	r�	unistring�
bytestringr��sizehint�istream�ostreamr��gots	         r�test_stream_bomzUTF8SigTest.test_stream_bomas���(�	��_�_�'D�D�
��!�!�+�.�����e�A�r�l�!3�3�1�2�H��R�Z�Z�
�3�4�G��k�k�m�G���'�"�<�<��1�D�"�<�<�>�D����
�
�d�#���"�"�$�C����S�)�,�2rc��d}d}tjd�}dgttdd��zgd�zD]�}|t	j
|��}t	j�}	|�|j|�}n|j�}|sn|j|��9|j�}|j||���yr�)rOrjr�rNr|r}r�rHrCr�r
r�s	         r�test_stream_barezUTF8SigTest.test_stream_barews���(�	�2�
��!�!�+�.�����e�A�r�l�!3�3�1�2�H��R�Z�Z�
�3�4�G��k�k�m�G���'�"�<�<��1�D�"�<�<�>�D����
�
�d�#���"�"�$�C����S�)�,�2rN)r(r)r*rXrOr�r�r�r�r�r�rrrrr�r�8s*���H�
�/�/�C�
�8@�=�
-�,-rr�c�$�eZdZd�Zd�Zd�Zd�Zy)�EscapeDecodeTestc��|jtjd�d�|jtjt��d�y)Nrr�)r
rO�
escape_decode�	bytearrayr�s rr�zEscapeDecodeTest.test_empty�s:������-�-�c�2�H�=�����-�-�i�k�:�H�Erc��tj}td�D]4}t|g�}|dk7s�|j	||dz�|dzdf��6y)Nr��\�0r)rOrrNrlr
�rrQr�s   r�test_rawzEscapeDecodeTest.test_raw�sN���%�%���s��A��q�c�
�A��E�z�� � ���D��!1�A��H�a�=�A�rc	���tj}t||�}|dd�|dd�|dd�|dd�|d	d
�|dd�|d
d�|dd�|dd�|dd�|dd�|dd
�|dd�|dd�|dd�|dd�|d d!�|d"d�|d#d!�td$d%�D]�}t	|g�}|d&vr-|jt�5|d'|zd'|z�ddd�|jt�5|d'|j�zd'|j�z�ddd���|jt�5|d(d(�ddd�|jt�5|d)d)�ddd�|jt�5|d*d*�ddd�td+d,�D]9}|jt�5|d-|zt	|d.zg��ddd��;y#1swY��xYw#1swY��`xYw#1swY��xYw#1swY��xYw#1swY��xYw#1swY��xYw)/N�[\
]�[]�[\"]s["]�[\']s[']�[\\]s[\]�[\a]s[]�[\b]s[]�[\t]s[	]�[\n]s[
]�[\v]s[]�[\f]s[]�[\r]s[
]�[\7]�[\78]s[8]�[\41]s[!]�[\418]s[!8]�[\101]s[A]�[\1010]s[A0]�[\x41]�[\x410]�a�{sabfnrtvxr�\8�\9�\�r�r��\%o�)rOrrrNrl�assertWarns�DeprecationWarning�upper�rrQrrZr�s     r�test_escapezEscapeDecodeTest.test_escape�s"���%�%���t�V�,��
�i���
�h���
�h���
�h�� �
�h�	�"�
�h�	�"�
�h�	�"�
�h�	�"�
�h�	�"�
�h�	�"�
�h�	�"�
�h�	�"�
�i��$�
�i�� �
�j�'�"�
�j�&�!�
�k�7�#�
�j�&�!�
�k�7�#��r�3��A��q�c�
�A���#��%�%�&8�9��%�!�)�U�Q�Y�/�:��!�!�"4�5��e�a�g�g�i�'������):�;�6�5� ��
�
�0�
1��&�&�!�2�
�
�
�0�
1��&�&�!�2�
�
�
�0�
1��)�Y�'�2��u�f�%�A��!�!�"4�5��g��k�5�!�e�)��#5�6�6�5�&�:�9��5�5��
1�
1��
1�
1��
1�
1��6�5�sH�<H�),H*�4
H7�
I�
I�8I�H'	�*H4	�7I�I�I�I$	c��tj}|jt|d�|jt|d�|j	|dd�d�|j	|dd�d�|jt|d�|jt|d	�|j	|d
d�d�|j	|d
d�d�y)
Ns\xs[\x]s[\x]\xr�)rr�r�)�[?]?r�s\x0s[\x0]s[\x0]\x0)r�)r.r/)rOrr�rMr
)rrQs  rr	zEscapeDecodeTest.test_errors�s����%�%�����*�f�f�5����*�f�h�7�����
�H�5�z�B�����
�I�6��E����*�f�g�6����*�f�i�8������h�7��D������i�8�,�GrN)r(r)r*r�rr,r	rrrrr�s��F�B�%7�N	Hrr))u"ليهمابتكلموشعربي؟segbpdaj6bu4bxfgehfvwxn)u他们为什么不说中文sihqwcrb4cv8a8dqg056pqjye)u他們爲什麽不說中文sihqwctvzc91f659drss3x8bo0yb)uPročprostěnemluvíčeskysProprostnemluvesky-uyb24dma41a)u,למההםפשוטלאמדבריםעבריתs4dbcagdahymbxekheh6e0a7fei0b)uZयहलोगहिन्दीक्योंनहींबोलसकतेहैंs,i1baa7eci9glrd9b2ae1bj0hfcgg6iyaf8o0a1dig0cd)u6なぜみんな日本語を話してくれないのかs&n8jok5ay5dzabd5bym9f0cm5685rrjetr6pdxa)uH세계의모든사람들이한국어를이해한다면얼마나좋을까sE989aomsvi5e83db1d2a355cv1e0vak1dwrv93d5xbh15a0dt30a5jpsd879ccm6fea98c)u8почемужеонинеговорятпорусскиs b1abfaaepdrnnbgefbaDotcwatmq2g4l)u*PorquénopuedensimplementehablarenEspañols-PorqunopuedensimplementehablarenEspaol-fmd56a)u-TạisaohọkhôngthểchỉnóitiếngViệts,TisaohkhngthchnitingVit-kjcr8268qyxafd2f1b9g)u3年B組金八先生s3B-ww4c5e180e575a65lsy2b)u"安室奈美恵-with-SUPER-MONKEYSs(-with-SUPER-MONKEYS-pc58ag80a8qai00g7n9n)u'Hello-Another-Way-それぞれの場所s(Hello-Another-Way--fc4qua05auwb3674vfr0b)uひとつ屋根の下2s2-u9tlzr9756bt3uc0v)uMajiでKoiする5秒前sMajiKoi5-783gue6qz075azm5e)uパフィーdeルンバsde-jg4avhby1noc0d)uそのスピードでsd9juau41awczczp)z-> $1.00 <-s-> $1.00 <--rc��eZdZd�Zd�Zd�Zy)�PunycodeTestc���tD]V\}}|jt|jd�d�j	�t|d�j	���Xy�N�punycoder�)�punycode_testcasesr
rOrb�lower�r�uni�punys   r�test_encodezPunycodeTest.test_encode;sO��+�I�C��
����C�J�J�z�*�G�4�:�:�<��D�'�"�(�(�*�
�
,rc���tD]g\}}|j||jd��|jd�jd�}|j||jd���iyr3)r5r
rQrbr7s   r�test_decodezPunycodeTest.test_decodeGs[��+�I�C�����S�$�+�+�j�"9�:��;�;�w�'�.�.�w�7�D����S�$�+�+�j�"9�:�,rc�2�ddt�fdg}|D]w\}}}|j||��5t|t�r#|j	t|j
d|�n"|j
|jd|�|�ddd��yy#1swY��xYw)N�xn--w&ri)r>r�zxn-)r9�errorsr4)r�r��
isinstance�	Exceptionr�rQr
)r�	testcasesr9r?rcs     r�test_decode_invalidz PunycodeTest.test_decode_invalidMs���
��,�.�1�(�
�	�'0�"�D�&�(����4���7��h�	�2��%�%�l�D�K�K��V�T��$�$�T�[�[��V�%D�h�O�	8�7�'0�7�7�s�AB
�
B	N)r(r)r*r:r<rCrrrr1r1:s��
�;�
Prr1)-)s%foo­͏᠆᠋bar​⁠baz︀︈️s	foobarbaz)sCAFEscafe)sßsss)sİsi̇)sŃͺsń ι�NN)sǰ ªsǰ a)sᾷsᾶι)�ǰrE)�ΐrF)�ΰrG)�ẖrH)�ὖrI)� rJ)s rJ)s N)s rJ)s​r)s rJ)�rK)s…N)s᠎N)r�r)s𝅵N)sN)s󱈴N)s􏈴N)s򏿾N)s􏿿N)s�N)s�N)s⿵N)śś)s‎N)s‪N)s󠀁N)s󠁂N)sfoo־barN)s	fooﵐbarN)s	fooﹶbars	foo َbar)sا1N)�ا1بrLrD)sX­ßİ℡ǰ ªΰ sxssi̇telǰ aΰ )sXß㌖İ℡⒟㌀s*xssキロメートルi̇tel(d)アパートc��eZdZd�Zy)�NameprepTestc	�R�ddlm}tt�D]X\}\}}|��t	|dd�}|�|jt||��3t	|dd�}	|j||�|��Zy#t$r+}tjd|dzt	|�fz��d}~wwxYw)Nr)�namepreprtr�z
Test 3.%d: %srM)�encodings.idnarPr��nameprep_testsrOr�r�r
rAr�
TestFailed)rrP�pos�orig�prepped�es      r�
test_nameprepzNameprepTest.test_nameprep�s���+�$-�n�$=� �C��$���|���t�W�o�6�D����!�!�,��$�?��g�w��@��P��$�$�X�d�^�W�=�%>��!�P�!�,�,�_��A��s�1�v��-N�O�O��P�s�A2�2	B&�;&B!�!B&N)r(r)r*rXrrrrNrN�s��PrrNc�6�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	y)	�
IDNACodecTestc���|jtdd�d�|jtdd�d�|jtdd�d�|jtdd�d	�y)
N�
python.org�idna�
python.org�python.org.�python.org.�xn--pythn-mua.org�pythön.org�xn--pythn-mua.org.�pythön.org.r�r�s r�test_builtin_decodez!IDNACodecTest.test_builtin_decode	sa������]�F�3�\�B�����^�V�4�m�D�����1�6�:�O�L�����2�F�;�=M�Nrc��|jdjd�d�|jdjd�d�|jdjd�d�|jdjd�d	�y)
Nr^r]r\r`r_rbrardrc�r
rbr�s r�test_builtin_encodez!IDNACodecTest.test_builtin_encodesq������,�,�V�4�m�D�����-�-�f�5�~�F�����/�/��7�9M�N����)�0�0��8�:O�Prc���|jtd�5djd�ddd�|jtd�5djd�ddd�y#1swY�:xYw#1swYyxYw)Nzway too longsTxn--016caaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaar]ztoo longsNxn--016caaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)�assertRaisesRegexr�rQr�s r� test_builtin_decode_length_limitz.IDNACodecTest.test_builtin_decode_length_limits]��
�
#�
#�L�.�
A�
"�*�*�6�2�B�
�
#�
#�L�*�
=�
 �(�(��0�>�
=�B�
A��
=�
=�s�A"�A.�"A+�.A7c���tjd�tjd��}|j	d�|j|j	�d�y)Nr]�abc�rg)rOrjr|r}rHr
)rrss  r�test_streamzIDNACodecTest.test_streamsC��$�F���V�$�R�Z�Z��%7�8��	���q�	��������2�&rc�L�|jdjtjd�dD�d��d�|jdjtjd�dD�d��d�|jdjtjd	�d
D�d��d�|jdjtjd�d
D�d��d�tjd��}|j|jd
�d�|j|jd�d�|j|jd�d�|j|jdd�d�|j
�|j|jd
�d�|j|jd�d�|j|jd�d�|j|jdd�d�y)Nrgc3�4K�|]}t|g����y�wr	�rl�r�rus  rr�z8IDNACodecTest.test_incremental_decode.<locals>.<genexpr>"s����&I�=�a�u�a�S�z�=���r\r]r^c3�4K�|]}t|g����y�wr	rrrss  rr�z8IDNACodecTest.test_incremental_decode.<locals>.<genexpr>&s����&J�>�a�u�a�S�z�>�rtr_r`c3�4K�|]}t|g����y�wr	rrrss  rr�z8IDNACodecTest.test_incremental_decode.<locals>.<genexpr>*�����&Q�;P�a�u�a�S�z�;P�rtrcrdc3�4K�|]}t|g����y�wr	rrrss  rr�z8IDNACodecTest.test_incremental_decode.<locals>.<genexpr>.rwrtsxn--xams	ple-9ta.ou	äxample.srgrT�orgsrg.zorg.)r
rorOrprPrQrn)r�decoders  r�test_incremental_decodez%IDNACodecTest.test_incremental_decode s�������G�G�F�%�%�&I�=�&I�6�R�S��	
�	
����G�G�F�%�%�&J�>�&J�F�S�T��	
�	
����G�G�F�%�%�&Q�;P�&Q�SY�Z�[��	
�	
����G�G�F�%�%�&Q�;P�&Q�SY�Z�[��	
�
7�&�.�.�v�6�8��������
�5�r�:��������7��G��������.��3��������T�2�E�:��
�
��������
�5�r�:��������7��G��������/��8��������T�2�B�7rc��|jdjtjdd��d�|jdjtjdd��d�|jdjtjdd��d�|jdjtjdd��d�tjd��}|j|jd	�d�|j|jd
�d�|j|jdd
�d�|j
�|j|jd	�d�|j|jd�d�|j|jdd
�d�y)Nrr^r]r\r`r_rdrcuäxz	ample.orgsxn--xample-9ta.rgTsorgz
ample.org.sxn--xample-9ta.org.)r
rorO�
iterencoderarbrn)r�encoders  r�test_incremental_encodez%IDNACodecTest.test_incremental_encode>sn������H�H�V�&�&�|�V�<�=��	
�	
����H�H�V�&�&�}�f�=�>��	
�	
����H�H�V�&�&�'7��@�A�!�	
�	
����H�H�V�&�&�'7��@�A�!�	
�
7�&�.�.�v�6�8���������0�#�6��������4�6H�I��������D�1�6�:��
�
���������0�#�6��������5�7M�N��������D�1�3�7rc���djdd�djdd�dD]F}|jtdjd|�|jtdjd|��Hy)z$Only supports "strict" error handlerr^r]rir\)r�r�r�r~N)rbrQr�rA�rr?s  rr	zIDNACodecTest.test_errorsZse�����F�H�-����V�X�.�#�F����i��)<�)<�f�f�M����i��$�$�f�f�
6�#rN)
r(r)r*rerhrkror{rr	rrrrZrZs'��O�Q�1�'�
8�<8�86rrZc�`�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zy)�CodecsModuleTestc���|jtjdd�d�|jttj�|jtjd�d�|jt
tjdd�|jtjdd��d�|jtjd	dd
��d�y)
N���latin-1�äöürm�abcrr���objrX�[�]r��r?r�)r
rOrQr�r�r�r�s rr<zCodecsModuleTest.test_decodegs����������	�B�'�	)����)�V�]�]�3�������v�.��6����,�f�m�m�W�g�N�	
������?�Y�O�'�	)�������y�'�(�K��	rc��|jtjdd�d�|jttj�|jt
tjdd�|jtjd�d�|jttjdd	�|jtjdd�
�d�|jtjdd	d�
�d�y)Nr�r�r�r��__spam__r�rmuÿffr�r��[ÿ]r�r�r)r
rOrbr�r��LookupErrorr�r�s rr:zCodecsModuleTest.test_encodets���������~�y�A�(�	*����)�V�]�]�3����+�v�}�}�e�Z�H�������u�-�v�6����,�f�m�m�X�w�O�	
������>�I�N�(�	*�������x���J��	 rc��|jttj�|jttjd�yr�)r�r�rO�registerr�s r�
test_registerzCodecsModuleTest.test_register�s,�����)�V�_�_�5����)�V�_�_�b�9rc�z�d}tj�}tj|�|j	t
tj|�|j|�|j�tj|�|j	ttj|�|j�y)N�nonexistent_codec_name)r�MockrOr�r�r�r��assert_called_with�
reset_mock�
unregisterr��assert_not_called)r�name�search_functions   r�test_unregisterz CodecsModuleTest.test_unregister�s~��'���)�)�+������(����)�V�]�]�D�9��*�*�4�0��"�"�$����/�*����+�v�}�}�d�;��)�)�+rc���|jttj�|jttjd�|jttjd�y)Nr�� )r�r�rOr�r�r�s r�test_lookupzCodecsModuleTest.test_lookup�sB�����)�V�]�]�3����+�v�}�}�j�A����+�v�}�}�c�:rc��|jttj�|jttjd�y�Nr�)r�r�rO�
getencoderr�r�s r�test_getencoderz CodecsModuleTest.test_getencoder��0�����)�V�%6�%6�7����+�v�'8�'8�*�Erc��|jttj�|jttjd�yr�)r�r�rO�
getdecoderr�r�s r�test_getdecoderz CodecsModuleTest.test_getdecoder�r�rc��|jttj�|jttjd�yr�)r�r�rOrjr�r�s r�test_getreaderzCodecsModuleTest.test_getreader��0�����)�V�%5�%5�6����+�v�'7�'7��Drc��|jttj�|jttjd�yr�)r�r�rOr�r�r�s r�test_getwriterzCodecsModuleTest.test_getwriter�r�rc��tjtj�}|jtjtj|�	tjtjd�t
jd�}|j|jd�y#tj$r|jd�Y�XwxYw)N�tr_TRztest needs Turkish locale�ASCIIr�)
�locale�	setlocale�LC_CTYPErA�Error�skipTestrOr�r
r�)r�	oldlocalerus   r�test_lookup_issue1813z&CodecsModuleTest.test_lookup_issue1813�s����$�$�V�_�_�5�	�����(�(�&�/�/�9�E�	7����V�_�_�g�6�
�M�M�'�"���������)��	�|�|�	7��M�M�5�6�	7�s�$B*�*$C�Cc��d}|j|tj�tjD]}tt|��y)N),rbrQr��	CodecInfo�Codec�IncrementalEncoder�IncrementalDecoder�StreamReader�StreamWriterr�r�r�rarPrjr��register_errorr��
strict_errors�replace_errors�
ignore_errors�xmlcharrefreplace_errors�backslashreplace_errors�namereplace_errorsrD�EncodedFiler}rpr��BOM_BE�BOM_LEr��	BOM_UTF16�BOM_UTF16_BE�BOM_UTF16_LE�	BOM_UTF32�BOM_UTF32_BE�BOM_UTF32_LE�BOM32_BE�BOM32_LE�BOM64_BE�BOM64_LE�StreamReaderWriter�
StreamRecoder)�assertCountEqualrO�__all__�getattr)r�apis  r�test_allzCodecsModuleTest.test_all�s7��
��$	
���c�6�>�>�2��>�>�C��F�C� �"rc�n�|jtjtj�dD]j}|j	|�5tjtj|d�5}|j|t
j�ddd�ddd��ly#1swY�xYw#1swY��xYw)N)�wrszr+�w+r�r�r�)	rArrBrCr�rOrDrSr�)rrQ�files   r�	test_openzCodecsModuleTest.test_open�s~�����	�(�(�)�*:�*:�;�5�D����d�#��K�K�	� 0� 0�$��@�D��%�%�d�F�,E�,E�F�A�$�#�6�@�@��$�#�s$�&B+�+!B�B+�B(�$B+�+B4	c���|jttjdd�|jttjdd�|jttjdd�|jttjdd�dD]P}|jttjdd|�|jttjdd|��Ry)Nr��	undefinedrmrgr)rir�r�r�)r�r�rOrbrQr�s  r�test_undefinedzCodecsModuleTest.test_undefined�s������,��
�
�u�k�J����,��
�
�v�{�K����,��
�
�r�;�G����,��
�
�s�K�H�I�F����l��
�
�u�k�6�
;����l��
�
�v�{�F�
<�Jrc�^�tj�}tjd|�5}|jt�5tjtjdd�ddd�|�jj�ddd�y#1swY�1xYw#1swYyxYw)Nz
builtins.openrKzinvalid-encoding)r�	mock_open�patchr�r�rOrDrrC�close�
assert_called)rr�r�s   r�'test_file_closes_if_lookup_error_raisedz8CodecsModuleTest.test_file_closes_if_lookup_error_raised�st���N�N�$�	�
�Z�Z���
3�t��"�"�;�/����I�,�,�d�4F�G�0�
�F�L�L�&�&�(�	4�
3�/�/��4�
3�s#�B#�&B�''B#�B 	�B#�#B,N)r(r)r*r<r:r�r�r�r�r�r�r�r�r�r�r�r�rrrr�r�esM��� �:�
,�;�
F�F�E�E�*�!�.G�	<�)rr�c�$�eZdZd�Zd�Zd�Zd�Zy)�StreamReaderTestc�l�tjd�|_tjd�|_y)Nrt�한
글)rOrjr�r|r}r~r�s r�setUpzStreamReaderTest.setUp�s%���&�&�w�/����j�j�!>�?��rc�~�|j|j�}|j|j�ddg�y)Nu한
u글)r�r~r
r��rr�s  r�test_readlineszStreamReaderTest.test_readlines�s/���K�K����$����������X�(>�?rc�8�|jtd��}|jtd�5t	j|�ddd�|jtd�5t	j
|�ddd�y#1swY�>xYw#1swYyxYw)Nr�r�)r�r;rjr��copy�deepcopyr�s  r�	test_copyzStreamReaderTest.test_copy�sj���K�K��;�<�=��
�
#�
#�I�~�
>��I�I�a�L�?�
�
#�
#�I�~�
>��M�M�!��?�
>�?�
>��
>�
>���B�%B�B
�Bc�J�ttjdz�D]l}|j|��5|j	td��}|j
td�5tj||�ddd�ddd��ny#1swY�xYw#1swY��xYw)NrM��protocolr�r�)	rN�pickle�HIGHEST_PROTOCOLr�r�r;rjr��dumps�r�protor�s   r�test_picklezStreamReaderTest.test_pickle�s}���6�2�2�Q�6�7�E����u��-��K�K��&C� D�E���+�+�I�~�F��L�L��E�*�G�.�-�8�G�F��.�-��#�1B�#B
�:B�
B�B�B"	N)r(r)r*r�r�r�r�rrrr�r��s��@�@��+rr�c��eZdZd�Zd�Zd�Zy)�StreamWriterTestc�8�tjd�|_y)Nrt)rOr�r�r�s rr�zStreamWriterTest.setUps���&�&�w�/��rc�8�|jtd��}|jtd�5t	j|�ddd�|jtd�5t	j
|�ddd�y#1swY�>xYw#1swYyxYw)Nrr�)r�r;rjr�r�r�r�s  rr�zStreamWriterTest.test_copysh���K�K��c�
�#��
�
#�
#�I�~�
>��I�I�a�L�?�
�
#�
#�I�~�
>��M�M�!��?�
>�?�
>��
>�
>�r�c�J�ttjdz�D]l}|j|��5|j	td��}|j
td�5tj||�ddd�ddd��ny#1swY�xYw#1swY��xYw)NrMr�rr�)	rNr�r�r�r�r;rjr�r�r�s   rr�zStreamWriterTest.test_pickles{���6�2�2�Q�6�7�E����u��-��K�K��c�
�+���+�+�I�~�F��L�L��E�*�G�.�-�8�G�F��.�-�r�N�r(r)r*r�r�r�rrrrr�s��0��+rrc��eZdZd�Zd�Zd�Zy)�StreamReaderWriterTestc�l�tjd�|_tjd�|_y)N�latin1rt)rOrjr�r�r�r�s rr�zStreamReaderWriterTest.setUps&���&�&�x�0����&�&�w�/��rc�l�tjtd�|j|j�}|jtd�5tj|�ddd�|jtd�5tj|�ddd�y#1swY�>xYw#1swYyxYw)Nrr�)	rOr�r;r�r�rjr�r�r�r�s  rr�z StreamReaderWriterTest.test_copys{���%�%�e�C�j�$�+�+�t�{�{�K��
�
#�
#�I�/C�
D��I�I�a�L�E�
�
#�
#�I�/C�
D��M�M�!��E�
D�E�
D��
D�
D�s�B�?B*�B'�*B3c�~�ttjdz�D]�}|j|��5t	j
t
d�|j|j�}|jtd�5tj||�ddd�ddd���y#1swY�xYw#1swY��xYw)NrMr�rr�)rNr�r�r�rOr�r;r�r�rjr�r�r�s   rr�z"StreamReaderWriterTest.test_pickle s����6�2�2�Q�6�7�E����u��-��-�-�e�C�j�$�+�+�t�{�{�S���+�+�I�7K�L��L�L��E�*�M�.�-�8�M�L��.�-�s$�AB3�=B'�B3�'B0�,B3�3B<	Nrrrrrrs��0��+rrc��eZdZd�Zy)�EncodedFileTestc�T�tjd�}tj|dd�}|j	|j�d�tj�}tj|dd�}|j
d�|j	|j�d�y)Nr�rVrts\�
�r��ü��)r|r}rOr�r
rHrCr��rr��efs   r�
test_basiczEncodedFileTest.test_basic*s}���J�J�4�5��
�
�
��;��
8���������$;�<��J�J�L��
�
�
��7�I�
6��
������������w�/rN)r(r)r*rrrrrr(s��0rr)er��big5�	big5hkscs�charmap�cp037�cp1006�cp1026�cp1125�cp1140�cp1250�cp1251�cp1252�cp1253�cp1254�cp1255�cp1256�cp1257�cp1258�cp424�cp437�cp500�cp720�cp737�cp775�cp850�cp852�cp855�cp856�cp857�cp858�cp860�cp861�cp862�cp863�cp864�cp865�cp866�cp869�cp874�cp875�cp932�cp949�cp950�euc_jis_2004�euc_jisx0213�euc_jp�euc_kr�gb18030�gb2312�gbk�	hp_roman8�hzr]�
iso2022_jp�iso2022_jp_1�iso2022_jp_2�iso2022_jp_2004�iso2022_jp_3�iso2022_jp_ext�
iso2022_kr�	iso8859_1�
iso8859_10�
iso8859_11�
iso8859_13�
iso8859_14�
iso8859_15�
iso8859_16�	iso8859_2�	iso8859_3�	iso8859_4�	iso8859_5�	iso8859_6�	iso8859_7�	iso8859_8�	iso8859_9�johab�koi8_r�koi8_t�koi8_u�kz1048�latin_1�mac_cyrillic�	mac_greek�mac_iceland�
mac_latin2�	mac_roman�mac_turkish�palmos�ptcp154r4�raw_unicode_escape�	shift_jis�shift_jis_2004�shift_jisx0213�tis_620�unicode_escape�utf_16�	utf_16_be�	utf_16_le�utf_7�utf_8�mbcs_encode�mbcs�
oem_encode�oemr4c��eZdZd�Zej
ejedud�d���Z	d�Z
d�Zd�Zd�Z
d	�Zy)
�BasicUnicodeTestc	�����d}tD�]�}tj|�j}|j	d�r|dz
}n|dk(rd}|dk7r2|j|j
dd�|j
dd��tj|�|�\}}|j|t|�d|z�tj|�|�\}}|j||d|z�|tvr�td�}tj|�|�}d}	|D]R}
|j|
�|j�}|jt!|�t"ut!|��|	|z
}	�Ttd�}tj$|�|�}d	}
|	D]0}
|jt#|
g��|
|j�z
}
�2|j|
|d|z�|tvs���	tj&|���d}	|D]}
|	�j)|
�z
}	�|	�j)d	d
�z
}	tj*|���d	}
|	D] }
|
�j-t#|
g��z
}
�"|
�j-dd
�z
}
|j|
|d|z�d	j/tj0tj2||�|��}|j||d|z�d	j/tj0tj2d	|�|��}|j|d	�|dvs��F	tj&|�d��dj/�fd
�|D��}	tj*|�d��d	j/�fd�|	D��}
|j|
|d|z����y#t4$rY��wxYw#t4$rY���wxYw)N�abc123�_codecrarvr��-�encoding=%rrrgT�r]rvr�c3�@�K�|]}�j|����y�wr	�rb)r�rur~s  �rr�z/BasicUnicodeTest.test_basics.<locals>.<genexpr>�s�����0N�A�q�����1B�A���c3�T�K�|]}�jt|g�����!y�wr	�rQrl)r�rurzs  �rr�z/BasicUnicodeTest.test_basics.<locals>.<genexpr>�s)�����0H�9F�A�18���u�a�S�z�0J�9F���%()�all_unicode_encodingsrOr�r��endswithr
r�r�rr��broken_unicode_with_statefulr;r�rCrHrV�typerlrjrarbrPrQrorpr}r�)rrGrXr�r�rFrBrrr��
encodedresultru�chunkr��
decodedresultrtrzr~s               @@r�test_basicszBasicUnicodeTest.test_basics�s������-�-�H��=�=��*�/�/�D�� � ��*��� ���Y�&� ���v�~�� � ��!1�!1�#�s�!;�!%���c�3�!7�9�4��)�)�(�3�A�6�I�Q�����T�3�q�6�=�8�+C�D�7�F�-�-�h�7��:�M�U�D����U�A�}�x�'?�@��;�;��#�J��3��)�)�(�3�A�6�� #�
��A��L�L��O��F�F�H�E��O�O�D��K�5�$8�$�u�+�F�!�U�*�M�	�
�#�J��3��)�)�(�3�A�6�� "�
�&�A��G�G�E�1�#�J�'�!�V�[�[�]�2�M�'�� � ���=�8�3K�L��;�;�1�D�f�:�:�8�D�F�G�
%(�M���%�����):�:�
��!�W�^�^�B��%=�=�M�D�f�:�:�8�D�F�G�$&�M�*��%�����q�c�
�)C�C�
�+�!�W�^�^�C��%>�>�M��$�$�]�A�%2�X�%=�?� �W�W�V�%6�%6�"�-�-�a��:�H�&F�G�F��$�$�V�Q�
��0H�I� �W�W�V�%6�%6�"�-�-�b�(�;�X�&G�H�F��$�$�V�R�0��#3�3�
C�"H�&�">�">�x�"H��"R��),���0N�A�0N�(N�
�"H�&�">�">�x�"H��"R��(*���0H�9F�0H�)H�
��(�(���)6��)A�C�W.��L#�����<'����s$�9O�O%�	O"�!O"�%	O2�1O2Nzneed _testcapi modulec�����d}tD�]7}|tvs�
	tj|��d}|D]}|�j	|�z
}�|�j	dd�z
}tj
|��d}|D] }|�j
t|g��z
}�"|�j
dd�z
}|j||d|z�|dvs��	tj|d��dj�fd�|D��}tj
|d��dj�fd	�|D��}|j||d|z���:y#t$rY��wxYw#t$rY��WwxYw)
Nr|rrgTrr�r�c3�@�K�|]}�j|����y�wr	r�)r�ru�cencoders  �rr�z4BasicUnicodeTest.test_basics_capi.<locals>.<genexpr>s�����0O�Q������1C�Q�r�c3�T�K�|]}�jt|g�����!y�wr	r�)r�ru�cdecoders  �rr�z4BasicUnicodeTest.test_basics_capi.<locals>.<genexpr>s)�����0H�9F�A�19����q�c�
�0K�9F�r�)r�r��	_testcapi�codec_incrementalencoderrb�codec_incrementaldecoderrQrlr
r�ro)rrGrXr�rur�r�r�s      @@r�test_basics_capiz!BasicUnicodeTest.test_basics_capi�s����
��-�-�H��;�;�?�(�A�A�(�K�H�
%(�M���%�����);�;�
��!�X�_�_�R��%>�>�M�(�A�A�(�K�H�$&�M�*��%������s��)D�D�
�+�!�X�_�_�S�$�%?�?�M��$�$�]�A�%2�X�%=�?��#3�3�
C�#,�#E�#E�h�PX�#Y��),���0O�Q�0O�(O�
�#,�#E�#E�h�PX�#Y��(*���0H�9F�0H�)H�
��(�(���)6��)A�C�A.��
#�����('����s#�E�
E�	E�E�	E#�"E#c�D�ddz}tD]�}|dk(r�	|tvr�tj|�t	j
|j
|���}td�D]6}|jdd�|j�}|j||��8��y)Nz%s
%s
)�Xabc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123�Xdef456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456r]r�r)r�r�rOrjr|r}rbrN�seekrHr
)rrGrXr��tr�s      r�	test_seekzBasicUnicodeTest.test_seek#s����5�5��-�H��6�!���7�7��/�V�%�%�h�/��
�
�1�8�8�H�;M�0N�O�F��1�X�����A�q�!��{�{�}��� � ��D�)�	�
.rc��tD]I}tj|�}|jt|�|dvs�3|jt|d��Ky)N)r]r4r�)r�rOr�r�r�)rrXrzs   r�test_bad_decode_argsz%BasicUnicodeTest.test_bad_decode_args2sG��-�H��'�'��1�G����i��1��3�3��!�!�)�W�b�9�	.rc�p�tD]-}tj|�}|jt|��/yr	)r�rOr�r�r�)rrXr~s   r�test_bad_encode_argsz%BasicUnicodeTest.test_bad_encode_args9s,��-�H��'�'��1�G����i��1�.rc�^�ddlm}t|j�}|j	||�y)Nr)r)�	encodingsrr��encoding_tabler
)rr�
table_types   r�"test_encoding_map_type_initializedz3BasicUnicodeTest.test_encoding_map_type_initialized>s%��$��&�/�/�0�
�����Z�0rc��d}tD]O}|tvs�|j|||j|��|j	|||j|���Qy)Nr|)r�r�r_rbrc)rrYrXs   rrz#BasicUnicodeTest.test_decoder_stateDsP����-�H��;�;��0�0��1�a�h�h�x�>P�Q��0�0��1�a�h�h�x�>P�Q�.r)r(r)r*r�r�cpython_only�unittest�skipIfr�r�r�r�r�r�rrrrrzrz�s]��NC�`
����X�_�_�Y�$�&�(?�@�#C�A��#C�J
*�:�2�
1�Rrrzc��eZdZd�Zd�Zd�Zy)�CharmapTestc��|jtjddd�d�|jtjddd�d�|jttjddd�|jttjddd�|jtjdd	d�d
�|jtjdd	d�d
�|jtjddd�d�|jtjddd�d�|jtjdd
d�d�|jtjdd
d�d�tt
d��}|jtj|d
d�dt|�f�y)N�rir��r�rn�􏿿bc�r�rn�abuab￾r��uab�rnr��zab\x02rnr��r�rnr�rg)r
rO�charmap_decoder�r�rlrNr�r�allbytess  r�test_decode_with_string_mapz'CharmapTest.test_decode_with_string_mapNs�������!�!�/�8�U�C��	
�
	
����!�!�/�8�^�L��	
�
	
���,��!�!�?�H�d�	
�	
���,��!�!�?�H�j�	
�	
����!�!�/�9�d�C��	
�
	
����!�!�/�9�j�I��	
�
	
����!�!�/�3E�t�L��	
�
	
����!�!�/�3E�z�R��	
�
	
����!�!�/�8�T�B��	
�
	
����!�!�/�8�Z�H��	
�
��s��$������!�!�(�H�b�9�
��X���	
rc��|jtjdddddd��d�|jtjdddd	d
d��d�|jtjdddddd��d
�|jtjdddddd��d�|jttjddddd��|jttjdddddd��|jttjdddddd��|jtjddddd��d�|jtjdddddd��d�|jtjdddddd��d�|jtjddddd��d�|jtjdddddd��d�|jtjdddddd��d�|jtjddddd��d�|jtjdddddd��d�|jtjdddddd��d�tt
d��}|jtj|di�dt|�f�|jtdtjdddd	dd��|jtdtjdddd	dd��y)Nr�rir�r�ru�rrMrr��Aa�Bb�Cc)�AaBbCcrn�􏿿r�rgr��rrMu￾r�r�r�r�r�r�z.character mapping must be in range\(0x110000\)r����i�ɚ;)
r
rOr�r�r�rlrNrrjr�r�s  r�test_decode_with_int2str_mapz(CharmapTest.test_decode_with_int2str_map�st������!�!�/�8�&)�c�c�":�
<��	
�	
����!�!�/�8�&*�t��"=�
?��	
�	
����!�!�/�8�&2�s�s�"C�
E��	
�	
����!�!�/�8�&)�c�b�"9�
;��	
�	
���,��!�!�?�H�'*�s�#3�	
�
	
���,��!�!�?�H�'*�s�t�#<�	
�	
���,��!�!�?�H�'*�s�x�#@�	
�
	
����!�!�/�9�&)�c�"2�
4��	
�	
����!�!�/�9�&)�c�d�";�
=��	
�	
����!�!�/�9�&)�c�h�"?�
A��	
�	
����!�!�/�3E�&)�c�"2�
4��	
�	
����!�!�/�3E�&)�c�d�";�
=��	
�	
����!�!�/�3E�&)�c�h�"?�
A��	
�	
����!�!�/�8�&)�c�"2�
4��	
�	
����!�!�/�8�&)�c�d�";�
=��	
�	
����!�!�/�8�&)�c�h�"?�
A��	
���s��$������!�!�(�H�b�9�
��X���	
�
	
���y�>��!�!��X�3�4�B�'?�	
�	
���y�>��!�!��X�3�4�I�'F�	
rc
��td�}td�}td�}|jtjdd|||d��d�|jtjddd||d��d	�|jtjddtj
||d��t
tj
�d
zdf�|jttjddtj
dz||d��|jttjdd||d
��|jttjdd||dd��|jtjdd||d
��d�|jtjdd||dd��d�|jtjdd||d
��d�|jtjdd||dd��d�|jtjdd||d
��d�|jtjdd||dd��d�y)Nr�r�rur�rir�r�i��r��bcrnrMr�i��r�r�r�r�r�r�)
�ordr
rOr�r�
maxunicode�chrr�r�r�)rr�r�rus    r�test_decode_with_int2int_mapz(CharmapTest.test_decode_with_int2int_map�sV����H����H����H������!�!�/�8�&'�A�!�"4�
6��	
�	
����!�!�/�8�&.�1��";�
=��	
�	
����!�!�/�8�&)�n�n��q�"A�
C�
����
 �4�
'��+�	
�	
���)��!�!�?�H�'*�~�~��'9�a�A�#F�	
�
	
���,��!�!�?�H�'(�Q�<�	
�
	
���,��!�!�?�H�'(�Q�6�#:�	
�
	
����!�!�/�9�&'�A�,�
0��	
�	
����!�!�/�9�&'�A�&�"9�
;��	
�	
����!�!�/�3E�&'�A�,�
0��	
�	
����!�!�/�3E�&'�A�&�"9�
;��	
�	
����!�!�/�8�&'�A�,�
0��	
�	
����!�!�/�8�&'�A�&�"9�
;��	
rN)r(r)r*r�r�r�rrrr�r�Ms��5
�nr
�hI
rr�c��eZdZd�Zd�Zy)�WithStmtTestc��tjd�}tj|dd�5}|j	|j�d�ddd�|j
|j�y#1swY�%xYw)Nrr�rtr)r|r}rOr�r
rHrV�closedrs   r�test_encodedfilezWithStmtTest.test_encodedfileF	sX���J�J�{�#��
�
�
��9�g�
6�"����R�W�W�Y��0�7�������!�7�
6�s�!A2�2A;c��tjd�}tjd�}tj||j
|jd�5}|j|j�d�ddd�y#1swYyxYw)Nrrtri�ü)	r|r}rOr�r��streamreader�streamwriterr
rH)rr�r8�srws    r�test_streamreaderwriterz$WithStmtTest.test_streamreaderwriterL	sn���J�J�{�#���}�}�W�%��
�
&�
&�q�$�*;�*;�'+�'8�'8�(�D�GJ����S�X�X�Z��0�D�D�D�s�!B�B
N)r(r)r*r�r�rrrr�r�E	s��"�1rr�c��eZdZd�Zd�Zy)�	TypesTestc�
�tjtjtjtjtj
tjtjtjtjtjtjtjg}ttd�r|jtj�|D]}|j!t"|d��y)N�mbcs_decoder�)rOr��utf_8_decoder_rpr�rr#r0�utf_32_ex_decode�latin_1_decode�ascii_decoder��hasattrr�r�r�r�)r�decodersrzs   r�test_decode_unicodezTypesTest.test_decode_unicodeU	s���
�������#�#��#�#��#�#�� � ��#�#��#�#��#�#��!�!�����!�!�

���6�=�)��O�O�F�.�.�/��G����i��%�8� rc���|jtjd�d�|jtjd�d�|jtjd�d�|jtjd�d�|j	t
tjd�|jtjdd�d�|jtjdd�d	�|j	t
tjd�|jtjdd�d�|jtjdd�d	�y)
Nz\u1234)uሴr�s\u1234�
\U00110000z
\U00110000r��r�r�r�)z(\x5c\x55\x30\x30\x31\x31\x30\x30\x30\x30r�)r
rO�unicode_escape_decode�raw_unicode_escape_decoder�r�r�s r�test_unicode_escapezTypesTest.test_unicode_escapej	s%��	
����5�5�i�@�-�P�����5�5�j�A�=�Q�����9�9�)�D�m�T�����9�9�*�E�}�U����,�f�.J�.J�N�[�����5�5�m�Y�O�Q_�`�����5�5�m�EW�X�J�	L�	
���,�f�.N�.N�P^�_�����9�9�-��S�Uc�d�����9�9�-�I[�\�J�	LrN)r(r)r*r�r�rrrr�r�T	s
��9�*Lrr�c�>�eZdZdZdZd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zy)
�UnicodeEscapeTestzunicode-escapeNc��|jtjd�d�|jtjd�d�y�Nrgr�r�rgr)r
rO�unicode_escape_encoder�r�s rr�zUnicodeEscapeTest.test_empty�	s8������5�5�b�9�8�D�����5�5�c�:�G�Drc��tj}tdd�D]5}|dk7s�	|j|t	|��t|g�df��7y)N� ��\rM)rOr�rNr
r�rl�rrbr�s   r�test_raw_encodez!UnicodeEscapeTest.test_raw_encode�	sF���-�-���r�3��A��H�}�� � ���A���%���*�a��A� rc��tj}td�D];}|dk7s�	|j|t	|g�dz�t|�dzdf��=y)Nr�r�r	�0r)rOr�rNr
rlr�r
s   r�test_raw_decodez!UnicodeEscapeTest.test_raw_decode�	sO���-�-���s��A��H�}�� � ���q�c�
�T�(9�!:�S��V�c�\�1�<M�N�rc��tj}t||�}|dd�|dd�|dd�|dd�td	�D]3}t	|�d
vs�|t	|�d|zj���5tdd
�D]%}|t	|�d|zj���'|dd�|dd�y)N�	s\tr�s\nr�s\r�\s\\r�z	

r�r�r��€�\u20ac�𝄠�
\U0001d120)rOr�rrNr�rb�rrbrr�s    r�test_escape_encodez$UnicodeEscapeTest.test_escape_encode�	s����-�-���t�V�,��
�d�F��
�d�F��
�d�F��
�d�F���r��A��1�v�X�%��c�!�f�y�1�}�4�4�6�7���s�C��A��#�a�&�9�q�=�0�0�2�3�!�
�h�
�#�
�l�N�+rc
��tj}t||�}|dd�|dd�|dd�|dd�|d	d
�|dd�|d
d�|dd�|dd�|dd�|dd�|dd
�|dd�|dd�|dd�|dd�|d d!�|d"d�|d#d!�|d$d%�|d&d'�td(d)�D]�}t	|g�}|d*vr6|jt�5|d+|zd,t|�z�ddd�|j�d-vs�\|jt�5|d+|j�zd,t|d.z
�z�ddd���|jt�5|d/d0�ddd�|jt�5|d1d2�ddd�|jt�5|d3d4�ddd�td5d6�D]5}|jt�5|d7|zt|��ddd��7y#1swY�� xYw#1swY��vxYw#1swY��xYw#1swY��xYw#1swY��xYw#1swY��xYw)8Nr
r�rz["]rz[']rz[\]rz[]rz[]rz[	]rz[
]rz[]rz[]rz[
]rrz[8]rz[!]rz[!8]rz[A]rz[A0]rr r�r�r�r�r!r"s	abfnrtuvxrr�sUNr�r#z\8r$z\9r%u\úr�r�r&)	rOr�rrNrlr(r)r�r*r+s     r�test_escape_decodez$UnicodeEscapeTest.test_escape_decode�	sE���-�-���t�V�,��
�i���
�h���
�h���
�h���
�h��!�
�h��!�
�h��!�
�h��!�
�h��!�
�h��!�
�h��!�
�h��!�
�i��#�
�i���
�j�&�!�
�j�%� �
�k�6�"�
�j�%� �
�k�6�"�
�j�(�#�
�n�l�+��r�3��A��q�c�
�A���$��%�%�&8�9��%�!�)�T�C��F�]�3�:��w�w�y��%��%�%�&8�9��%�!�'�'�)�+�T�C��"��I�-=�>�:�9�
 ��
�
�0�
1��&�%� �2�
�
�
�0�
1��&�%� �2�
�
�
�0�
1��)�X�&�2��u�f�%�A��!�!�"4�5��g��k�3�q�6�*�6�5�&�:�9��:�9��
1�
1��
1�
1��
1�
1��6�5�sH�I�*I� 
I�
I+�.
I7�$J�I	�I	�I(�+I4�7J�J	c	�.�tj}dD]�\}}t|�D]�}|jt|d|zd|zz�|jt|d|zd|zzdz�d|zd|zzdz|zd|zz}|j||d�dt
|�f�|j||d	�d
t
|�f�����|jt|d�|j|dd�d�|j|dd	�d
�y)N))�xr��ur���Ur�rr	�[\�]�]\r�r�r��[�]�r��rgr�r�)rOr�rNr�r�r
r�rrQrur[rZr�s      r�test_decode_errorsz$UnicodeEscapeTest.test_decode_errors�	s ���-�-��3�D�A�q��1�X���!�!�"4�f�"'�!�)�d�1�f�"4�6��!�!�"4�f�"(�1�*�t�A�v�"5��"<�>���z�D��F�*�V�3�a�7�$�q�&�@��� � ���h�!7�$��D�	�9J�K�� � ���i�!8�"2�C��I�!>�@��4�	
���,�f�n�E�������9�8�D������	�:�N�Krc�,�|jdgd��y)N�	

\ÿ￿𐀀) rgrgrgr�r��	r�	
r�	

r�	

\rrr�	

\ÿrrrrr�
	

\ÿ￿rrrrrrrrrrr�r�s rr�zUnicodeEscapeTest.test_partial�	r�r�r(r)r*rXr�r�r�r�r�r�rr�rrrr�r�}	s5���H���E�B�O�
,�(+�TL� %
rr�c�>�eZdZdZdZd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zy)
�RawUnicodeEscapeTestzraw-unicode-escapeNc��|jtjd�d�|jtjd�d�yr�)r
rO�raw_unicode_escape_encoder�r�s rr�zRawUnicodeEscapeTest.test_empty
s8������9�9�"�=�x�H�����9�9�#�>��Hrc��tj}td�D]/}|j|t	|��t|g�df��1y)Nr�rM)rOrrNr
r�rlr�s   rr�z$RawUnicodeEscapeTest.test_raw_encode
s=���1�1���s��A����V�C��F�^�e�Q�C�j�!�_�=�rc��tj}td�D]5}|j|t	|g�dz�t|�dzdf��7y)Nr�r	r�r)rOr�rNr
rlr�r
s   rr�z$RawUnicodeEscapeTest.test_raw_decode
sH���1�1���s��A����V�E�1�#�J��$5�6��Q��#��q�8I�J�rc���tj}t||�}td�D])}|dvs�|dt	|�zdt|g�z��+|dd�|dd�y)	Nr��uUr�rr�r�r�r�)rOrrrNr�rlr�s    rr�z'RawUnicodeEscapeTest.test_escape_encode
sa���1�1���t�V�,���s��A���~��d�S��V�m�U�U�A�3�Z�%7�8��	�h�
�#�
�l�N�+rc���tj}t||�}td�D])}|dvs�|dt	|g�zdt|�z��+|dd�|dd�y)	Nr�rrr�r�r�r�r�)rOr�rrNrlr�)rrQrr�s    rr�z'RawUnicodeEscapeTest.test_escape_decode
sa���1�1���t�V�,���s��A���~��e�e�Q�C�j�(�$��Q��-�8��	�j�(�#�
�n�l�+rc	�.�tj}dD]�\}}t|�D]�}|jt|d|zd|zz�|jt|d|zd|zzdz�d|zd|zzdz|zd|zz}|j||d�dt
|�f�|j||d	�d
t
|�f�����|jt|d�|j|dd�d�|j|dd	�d
�y)N)rrrr	rrrr�r�r�r	r�r
r�)rOr�rNr�r�r
rrs      rrz'RawUnicodeEscapeTest.test_decode_errors'
s ���1�1��(�D�A�q��1�X���!�!�"4�f�"'�!�)�d�1�f�"4�6��!�!�"4�f�"(�1�*�t�A�v�"5��"<�>���z�D��F�*�V�3�a�7�$�q�&�@��� � ���h�!7�$��D�	�9J�K�� � ���i�!8�"2�C��I�!>�@��)�	
���,�f�n�E�������9�8�D������	�:�N�Krc�,�|jdgd��y)Nr)r�rrrrrrrrrrrrrrrrrrrrrr�r�s rr�z!RawUnicodeEscapeTest.test_partial7
s�����.�
�	
rrrrrrr
s3��#�H���I�>�
K�
,�,�L� 
rrc��eZdZd�Zy)�EscapeEncodeTestc�^�gd�}|D]E\}}|j|��5|jtj|�|�ddd��G|j	t
tjd�|j	t
tjt
d��y#1swY��xYw)N))rr�)�foobar)r$r�)s	spameggs)sspam\x00eggs�	)sa'b)sa\'brn)sb\c)sb\\crn)sc
d)sc\ndrn)sd
e)sd\rern)sfg)sf\x7fgrnr�r�r�)r�r
rO�
escape_encoder�r�r)rrar��outputs    rr�z#EscapeEncodeTest.test_escape_encodeW
s���	
��"�L�D�&����4��(�� � ��!5�!5�d�!;�V�D�)�(�"�	
���)�V�%9�%9�6�B����)�V�%9�%9�9�W�;M�N�)�(�s�&B#�#B,	N)r(r)r*r�rrrr"r"U
s��Orr"c�$�eZdZd�Zd�Zd�Zd�Zy)�SurrogateEscapeTestc��|jdjdd�d�|jdjdd�d�|jdjdd�d�|jdjdd�d�y)N�foo�barrtr~�	foo�bars�u	����r
rQrbr�s r�	test_utf8zSurrogateEscapeTest.test_utf8k
s�������-�-�g�7H�I�'�	)�����.�.�w�8I�J�&�	(�	
����/�/��9J�K�-�	/����-�4�4�W�>O�P�(�	*rc��|jdjdd�d�|jdjdd�d�y)Nr+r�r~r,r-r�s rr�zSurrogateEscapeTest.test_asciiw
sD������-�-�g�7H�I�'�	)�����.�.�w�8I�J�&�	(rc��|jdjdd�d�|jdjdd�d�y)Nsfoo�barz
iso-8859-3r~u	foo�barr-r�s r�test_charmapz SurrogateEscapeTest.test_charmap~
sD������-�-�l�<M�N�'�	)�����.�.�|�=N�O�&�	(rc�H�|jdjdd�d�y)Nu�����r�r~s���rgr�s r�test_latin1zSurrogateEscapeTest.test_latin1�
s$�����9�@�@��L]�^�0�	2rN)r(r)r*r.r�r1r3rrrr)r)i
s��
*�(�(�2rr)c��eZdZd�Zy)�BomTestc�v�d}d}|jtjtj�|D�]�}t	j
tjd|��5}|j
|�|j
|�|jd�|j|j�|dz�|jd�|j|j�|dz�ddd�t	j
tjd|��5}|j
|d�|j|j�d�|jd�|j
|�|jd�|j|j�|�ddd�t	j
tjd|��5}|jj
|d�|j|jj�d�|jjd�|jj
|�|jd�|j|j�|�ddd�t	j
tjd|��5}|j
|�|j|j��|j
|�|jd�|j|j�|dz�ddd�t	j
tjd|��5}|jj
|�|jj|jj��|jj
|�|jd�|j|j�|dz�ddd����y#1swY��xYw#1swY��ixYw#1swY���xYw#1swY��xYw#1swY��xYw)N�
1234567890)r4rVrmr�rr,r�r@rr)
rArrBrCrOrDrCr�r
rH�assertNotEqual�tellr�)rr�rarXr�s     r�
test_seek0zBomTest.test_seek0�
s�������	
���	�(�(�)�*:�*:�;��H����Y�-�-�t�h�G�1�����
�����
����q�	�� � �����4�!�8�4����q�	�� � �����4�!�8�4�
H����Y�-�-�t�h�G�1�����Q�� ��#�#�A�F�F�H�a�0����q�	�����
����q�	�� � �����4�0�
H����Y�-�-�t�h�G�1������t�A�w�'��#�#�A�H�H�M�M�O�Q�7����
�
�a� ������t�$����q�	�� � �����4�0�
H����Y�-�-�t�h�G�1�����
����q�v�v�x� �����
����q�	�� � �����4�!�8�4�H����Y�-�-�t�h�G�1������t�$����
�
�a�h�h�m�m�o�.������t�$����q�	�� � �����4�!�8�4�H�G�O�G�G��H�G��H�G��H�G��H�G�sA�BO:�BP�B0P�,A6P!�BP.�:P	�P	�P	�!P+	�.P8	N)r(r)r*r:rrrr5r5�
s��55rr5)�base64_codec�uu_codec�quopri_codec�	hex_codec�base64�base_64�uu)�quopri�quoted_printable�quotedprintable�hex�rot13)r;r<r=r>�rot_13�
zlib_codecrk�zlib�	bz2_codec�bz2c��eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
eje
d	�d
��Zd�Zd�Zd
�Zd�Zy)�TransformCodecTestc��ttd��}tD]�}|j|��5t	j
|�|�\}}|j
|t|��t	j|�|�\}}|j
|t|��|j
||�ddd���y#1swY��xYw)Nr�r@)	rlrN�bytes_transform_encodingsr�rOr�r
rr�)r�binputrX�orFrZs      rr�zTransformCodecTest.test_basics�
s����u�S�z�"��1�H����x��0�7�F�-�-�h�7��?�	��D�� � ��s�6�{�3�7�F�-�-�h�7��:�	��D�� � ��s�1�v�.�� � ��F�+�
1�0�2�0�0�s�BC�C		c�4�tD]�}|j|��5tjd|�}tj|�tj|��}|j�}|j|d�ddd���y#1swY��xYw�Nr@r�)	rOr�rOrbrjr|r}rHr
�rrX�sinr��souts     r�	test_readzTransformCodecTest.test_read�
ss��1�H����x��0��m�m�G�X�6��3��)�)�(�3�B�J�J�s�O�D���{�{�}��� � ��w�/�	1�0�2�0�0���A'B�B	c�4�tD]�}|j|��5tjd|�}tj|�tj|��}|j�}|j|d�ddd���y#1swY��xYwrS)	rOr�rOrbrjr|r}r�r
rTs     rr�z TransformCodecTest.test_readline�
st��1�H����x��0��m�m�G�X�6��3��)�)�(�3�B�J�J�s�O�D�����(��� � ��w�/�	1�0�2�0�0�rXc��d}tD]�}|j|��5|}t|�}tj||�}tj||�}|j||�t|�}tj||�}|j||�tj||�}|j||�ddd���y#1swY��xYw)Ns12345�r@)rOr��
memoryviewrOrbr
rQ)r�originalrXr��view�view_encoded�view_decodeds       r�test_buffer_api_usagez(TransformCodecTest.test_buffer_api_usages��� ��1�H����x��0���!�$�'���}�}�T�8�4��%�}�}�T�8�<��� � ��t�4�!�$�'���}�}�T�8�4��� � ��x�0�%�}�}�T�8�<��� � ��t�4�1�0�2�0�0�s�B'C�C	c�T�d}tD]�}|j|��5d}|j|�}|jt|�5}|j|�ddd�|j
jj�ddd���y#1swY�9xYw#1swY��xYw)Nzbad input typer@zM{!r} is not a text encoding; use codecs.encode\(\) to handle arbitrary codecs)	rOr��formatrjr�rb�assertIsNonerP�	__cause__)r�	bad_inputrX�fmt�msg�failures      r�/test_text_to_binary_denylists_binary_transformszBTransformCodecTest.test_text_to_binary_denylists_binary_transformss���$�	�1�H����x��0�K���j�j��*���+�+�K��=���$�$�X�.�>��!�!�'�"3�"3�"=�"=�>�
1�0�2�
>�=��	1�0�s#�*B�B�-B�B�B�B'	c��d}|jt|�5djd�ddd�y#1swYyxYw)NzR^'rot_13' is not a text encoding; use codecs.encode\(\) to handle arbitrary codecszjust an example messagerG)rjr�rb�rrgs  r�-test_text_to_binary_denylists_text_transformsz@TransformCodecTest.test_text_to_binary_denylists_text_transformss4��C��
�
#�
#�K��
5�%�,�,�X�6�6�
5�
5�s�4�=c��d}tD]�}|j|��5tj||�}d}|j	|�}|jt|�5|j|�ddd�|jt|�5t|�j|�ddd�ddd���y#1swY�MxYw#1swY� xYw#1swY��xYw)Ns6encode first to ensure we meet any format restrictionsr@zM{!r} is not a text encoding; use codecs.decode\(\) to handle arbitrary codecs)	rOr�rOrbrbrjr�rQr)rr�rX�encoded_datarfrgs      r�/test_binary_to_text_denylists_binary_transformszBTransformCodecTest.test_binary_to_text_denylists_binary_transforms%s���I��1�H����x��0�%�}�}�T�8�<��K���j�j��*���+�+�K��=� �'�'��1�>��+�+�K��=��l�+�2�2�8�<�>�1�0�2�>�=��=�=��1�0�s<�AC�B<�0C�C�)C�<C�C�C�
C�C	c�<�dtd�fD]t}|j|��5d}|jt|�5}|j	d�ddd�|jjj�ddd��vy#1swY�9xYw#1swY��xYw)Ns	immutablesmutable)rezR^'rot_13' is not a text encoding; use codecs.decode\(\) to handle arbitrary codecsrG)rr�rjr�rQrcrPrd)rrergrhs    r�-test_binary_to_text_denylists_text_transformsz@TransformCodecTest.test_binary_to_text_denylists_text_transforms4s���&�	�*�(=�>�I����	��2�K���+�+�K��=���$�$�X�.�>��!�!�'�"3�"3�"=�"=�>�3�2�?�>�=��3�2�s"�B�B�-B�B�B�B	zRequires zlib supportc���d}|jtj�5}tjdd�ddd�|j|jjd�y#1swY�3xYw)Nz'decoding with 'zlib_codec' codec failed�hellorHr)r�rI�errorrOrQr
rP�	__notes__)rrgrhs   r�test_custom_zlib_error_is_notedz2TransformCodecTest.test_custom_zlib_error_is_noted>sZ��8��
�
�
�t�z�z�
*�g��M�M�(�L�1�+�����g�/�/�9�9�!�<�=�+�
*���A+�+A4c���ddl}d}|j|j�5}tjdd�ddd�|j|jjd�y#1swY�3xYw)Nrz&decoding with 'hex_codec' codec failedrsr>)�binasciir�r�rOrQr
rPru)rryrgrhs    r�test_custom_hex_error_is_notedz1TransformCodecTest.test_custom_hex_error_is_notedFs[���6��
�
�
�x�~�~�
.�'��M�M�(�K�0�/�����g�/�/�9�9�!�<�=�/�
.�rwc�8�tj�D]w\}}tj|�j}|D]N}|j|��5tj|�}|j
|j|�ddd��P�yy#1swY�]xYw)N)�alias)�transform_aliases�itemsrOr�r�r�r
)r�
codec_name�aliases�
expected_namer|r8s      r�test_aliaseszTransformCodecTest.test_aliasesOsy��#4�#:�#:�#<��J��"�M�M�*�5�:�:�M� ���\�\��\�.�!�=�=��/�D��$�$�T�Y�Y�
�>�/�.�!�$=�/�.�s�2B�Bc��tjdd�}|j|d�d}|jtj|d�|�y)Nsspace tab	eol 
zquopri-codecsspace=20tab=09eol=20
sspace tab eol
)rOrbr
rQ)rrw�	unescapeds   r�test_quopri_statelessz(TransformCodecTest.test_quopri_statelessWsD���-�-� 4�n�E������";�<�&�	�������y�.�A�9�Mrc�P�|jttjdd�y)Nrzuu-codec)r�rMrOrQr�s r�test_uu_invalidz"TransformCodecTest.test_uu_invalid_s�����*�f�m�m�S�*�ErN)r(r)r*r�rWr�r`rirlrorqr��
skipUnlessrIrvrzr�r�r�rrrrMrM�
sd��	,�0�0�5�$
?�7�
=�?��X����6�7�>�8�>�>�?�N�FrrMc�,�tj|�Sr	)�_TEST_CODECS�get)rs r�_get_test_codecr�ks�����J�'�'rc��eZdZd�Zd�Zd�Zejd��Zd�Z	e
fd�Zd�Zd�Z
d	�Zd
�Zd�Zd�Zd
�Zd�Zd�Zd�Zd�Zy)�ExceptionNotesTestc��d|_tjt�|j	tj
t�t|_y)N�exception_notes_test)rrOr�r�rAr��RuntimeError�obj_to_raiser�s rr�zExceptionNotesTest.setUpqs3��0�������(�����)�)�?�;�)��rc��tj|jd�tjj|jd�yr	)r��poprr��_cacher�s r�tearDownzExceptionNotesTest.tearDowns0��������$�/������T�_�_�d�3rc�n�tj|||j��}|t|j<y)N)r�)rOr�rr�)rrbrQ�
codec_infos    r�	set_codeczExceptionNotesTest.set_codec�s+���%�%�f�f�+/�?�?�<�
�(2��T�_�_�%rc#�2K�dj||j�}|j|�5}|��ddd�|j|jj
d�|jj
j
�y#1swY�WxYw�w)Nz{} with {!r} codec failedr)rbrr�rNrPru�clear)r�	operation�exc_typerg�full_msg�caughts      r�assertNotedzExceptionNotesTest.assertNoted�sx����/�6�6��T�_�_�.��
�
�
�x�
(�F��L�)��
�
�h�� 0� 0� :� :�1� =�>����"�"�(�(�*�)�
(�s�.B�B�AB�B�Bc��|j�r	)r�)r�args�kwdss   r�	raise_objzExceptionNotesTest.raise_obj�s�����rc��||_|j|j|j�|jd||�5dj	|j
�ddd�|jd||�5t
jd|j
�ddd�|jd||�5dj|j
�ddd�|jd||�5t
jd|j
�ddd�y#1swY��xYw#1swY��xYw#1swY�^xYw#1swYyxYw)NrX�	str_input�decoding�bytes input)r�r�r�r�rbrrOrQ)rr�rgr�s    r�
check_notezExceptionNotesTest.check_note�s���(������t�~�~�t�~�~�6�
�
�
�j�(�C�
8����t���/�9�
�
�
�j�(�C�
8��M�M�+�t���7�9�
�
�
�j�(�C�
8��!�!�$�/�/�2�9�
�
�
�j�(�C�
8��M�M�.�$�/�/�:�9�
8�
9�
8��
8�
8��
8�
8��
8�
8�s0�D�8!D!�4D-�+!D9�D�!D*�-D6�9Ec�0�|jtd�y)Nrg�r�r�r�s r�test_raise_by_typez%ExceptionNotesTest.test_raise_by_type�s������b�)rc�>�d}|jt|�|�y)N�This should be notedr�rks  r�test_raise_by_valuez&ExceptionNotesTest.test_raise_by_value�s��$������S�)�3�/rc�X�d}Gd�dt�}|j||�||�y)Nr�c��eZdZdZy)�TExceptionNotesTest.test_raise_grandchild_subclass_exact_size.<locals>.MyRuntimeErrorrN)r(r)r*�	__slots__rrr�MyRuntimeErrorr��s���Irr��r�r��rrgr�s   r�)test_raise_grandchild_subclass_exact_sizez<ExceptionNotesTest.test_raise_grandchild_subclass_exact_size�s(��$��	�\�	�����s�+�S�.�Arc�X�d}Gd�dt�}|j||�||�y)Nr�c��eZdZy)�SExceptionNotesTest.test_raise_subclass_with_weakref_support.<locals>.MyRuntimeErrorN)r(r)r*rrrr�r��s��rr�r�r�s   r�(test_raise_subclass_with_weakref_supportz;ExceptionNotesTest.test_raise_subclass_with_weakref_support�s(��$��	�\�	�����s�+�S�.�Arc�F�Gd�dt�}|j|d�y)Nc��eZdZd�Zy)�9ExceptionNotesTest.test_init_override.<locals>.CustomInitc��yr	rr�s rr@zBExceptionNotesTest.test_init_override.<locals>.CustomInit.__init__�s��rN)r(r)r*r@rrr�
CustomInitr��s��
rr�rgr�)rr�s  r�test_init_overridez%ExceptionNotesTest.test_init_override�s��	��	�	
���
�B�'rc�F�Gd�dt�}|j|d�y)Nc���eZdZ�fd�Z�xZS)�7ExceptionNotesTest.test_new_override.<locals>.CustomNewc�"��t�|�|�Sr	)r��__new__)�clsr�s �rr�z?ExceptionNotesTest.test_new_override.<locals>.CustomNew.__new__�s����w��s�+�+r)r(r)r*r�r�r�s@r�	CustomNewr��s
���
,�
,rr�rgr�)rr�s  r�test_new_overridez$ExceptionNotesTest.test_new_override�s��	,��	,�	
���	�2�&rc�n�d}t|�}d|_|j|dj|��y)Nr�rMz^{}$)r��attrr�rb)rrgr�s   r�test_instance_attributez*ExceptionNotesTest.test_instance_attribute�s/��$���3����������V�]�]�3�/�0rc�:�|jtd�d�y)NrM�1r�r�s r�test_non_str_argz#ExceptionNotesTest.test_non_str_arg�s������Q���-rc�B�d}|jtddd�|�y)Nz^\('a', 'b', 'c'\)$r�r�rur�)r�msg_res  r�test_multiple_argsz%ExceptionNotesTest.test_multiple_args�s��'������S�#�s�3�V�<rc�~�dj|j�}|jt|�5dj	|j�ddd�|jt|�5tjd|j�ddd�|jt|�5dj
|j�ddd�|jt|�5tjd|j�ddd�y#1swY��xYw#1swY��xYw#1swY�axYw#1swYyxYw)Nz^unknown encoding: {}$z	str inputr�)rbrrjr�rbrOrQrks  r�test_codec_lookup_failurez,ExceptionNotesTest.test_codec_lookup_failure�s���&�-�-�d�o�o�>��
�
#�
#�K��
5����t���/�6�
�
#�
#�K��
5��M�M�+�t���7�6�
�
#�
#�K��
5��!�!�$�/�/�2�6�
�
#�
#�K��
5��M�M�.�$�/�/�:�6�
5�
6�
5��
5�
5��
5�
5��
5�
5�s/�D�,!D�+D'�%!D3�D�D$�'D0�3D<c��d�}d�}|j||�tjd|j�}|j	|d�tj
d|j�}|j	|d�d}|j
|j�}|jt|�5dj|j�ddd�d}|j
|j�}|jt|�5dj|j�ddd�y#1swY�axYw#1swYyxYw)	Nc��y)N)�
not bytes!rr�r�r�s  r�
encode_to_strzPExceptionNotesTest.test_unflagged_non_text_codec_handling.<locals>.encode_to_str�s��"rc��y)N)�not str!rrr�s  r�decode_to_byteszRExceptionNotesTest.test_unflagged_non_text_codec_handling.<locals>.decode_to_bytes�s��!rr�r�zd^{!r} encoder returned 'str' instead of 'bytes'; use codecs.encode\(\) to encode to arbitrary types$r�zd^{!r} decoder returned 'bytes' instead of 'str'; use codecs.decode\(\) to decode to arbitrary types$r�)	r�rOrbrr
rQrbrjr�)rr�r�rw�decodedrfrgs       r�&test_unflagged_non_text_codec_handlingz9ExceptionNotesTest.test_unflagged_non_text_codec_handling�s���	#�	"����}�o�6��-�-��d�o�o�6������,�/��-�-��d�o�o�6������+�.�F���j�j����)��
�
#�
#�I�s�
3����t���/�4�F���j�j����)��
�
#�
#�I�s�
3��!�!�$�/�/�2�4�
3�4�
3��
4�
3�s�0D,�D8�,D5�8EN)r(r)r*r�r�r��
contextlib�contextmanagerr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrr�r�ost��)�4�
3�
���+��+� �6B�
;�*�0�B�B�(�'�1�.�=�
	;�3rr��win32z"code pages are specific to Windowsc��eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zej d
dd��d��Zej d
dd��d��Zy)�CodePageTest��c�4�|jttjdd�|jttjdd�|jt
tjdd�|jt
tjdd�y)Nrr��ar")r�rMrO�code_page_encode�code_page_decode�OSErrorr�s r�test_invalid_code_pagez#CodePageTest.test_invalid_code_page�sj�����*�f�&=�&=�r�3�G����*�f�&=�&=�r�4�H����'�6�#:�#:�C��E����'�6�#:�#:�C��Frc	�
�|jtdtjdd�|jtdtj
dddd�|jtdtj
|jddd�y)	Nr:��ÿs�riT�CP_UTF8r)rjr�rOr�r�r�r�r�s r�test_code_page_namez CodePageTest.test_code_page_namesp�����1�7��#�#�S�&�	2����1�7��#�#�S�+�x��	G����1�9��#�#�T�\�\�7�H�d�	Lrc��|D]�\}}}|�t	tj|||d�}|j	d||�d|�d|�d	|d�d
|��	�|j|dd�|j
|dt|���}|jttj|||d���y#t$r'}|jd|�d|�d|�d|���Yd}~��d}~wwxYw)NTzUnable to decode z	 from "cp�" with errors=�: rz.decode("cp�", �)=� != rM)	rOr�r��failr
�assertGreaterEqual�assertLessEqualrr�)rr5rarbr?rcr��errs        r�check_decodezCodePageTest.check_decodes���%*�!�C����#�H�$�5�5�b�#�v�t�L�G�� � ����X��B����
�H�>�?��'�'���
�A�6��$�$�W�Q�Z��S��:��!�!�"4��+�+�R��f�d�D�&+��*�H��I�I�14�b�&�#�G�H�H��H�s�B+�+	C�4C�Cc��|D]�\}}}|�^	tj|||�}|j	d||�d|�d|�d|d�d	|��	�|j	|d
t|���g|j
ttj|||���y#t$r'}|jd|�d|�d|�d|���Yd}~��d}~wwxYw)NzUnable to encode z to "cpr�r�rz.encode("cpr�r�r�rM)rOr�r�r�r
rr�)rr5ra�textr?rcrwr�s        r�check_encodezCodePageTest.check_encodes���&+�"�D�&�(��#�I�$�5�5�b�$��G�G�� � ����X��R�����X�?�@�� � ����S��Y�7��!�!�"4��+�+�R��v�?�',��*�I��I�I�15�r�6�3�H�I�I��I�s�B�	C�B?�?Cc�L�|jdd�|jdd�y)Nr�)�r�rirm)�d騾ri����)r�riN)r�r�r)r�r�s[y])u[€]r�s[?])r�r�s[\xff])r�r�s)[\N{LATIN SMALL LETTER Y WITH DIAERESIS}])r�r�s[&#255;])u�riN)�[�]r~r�)rr�N)�rmrir�)rrir)r�riN)r�r�r�)r�r�u[�])r�r�z[\xff])r�r~r)r�r�N)��abcriN)rr�zabc)rr�u�abc)rr�z\x81abc�r�r�r�s r�
test_cp932zCodePageTest.test_cp932-s.�����#� 
�	� 	
���#� 
�	rc�L�|jdd�|jdd�y)Ni�)r�)�é€ri��)r�rir)�ŁriN)r
r�r)r
r��L)��r~��)rr�N)r)r	rir)rrir�rr�s r�test_cp1252zCodePageTest.test_cp1252Ns.�����$�
!
�
	�	
���$�!
�	rc�P�d}|j|d�|j|d�y)N��)r�)rri�+AOkgrA-)r�ri�+2//f/w-)r�ri�+3IA-)r�ri�+//0-)r)rrir)rrir�)rrir�)rrir�)s[+/]rir�)r�rir�r�rr5s  r�test_cp_utf7zCodePageTest.test_cp_utf7`s3��
�����"�
�	�	
���"�	
�		rc��|jdd�|j|jd�|j|jd�y)Nr�))���r��騾)rr�u�騾))��􏿿r�r�)rr�u�􏿿))�	[􏿿�]r�s[􏿿])rr�s[􏿿?])r�r�r�r�s r�test_multibyte_encodingz$CodePageTest.test_multibyte_encodingtsM�����#� 
�	�	
���$�,�,�)
�	�	
���$�,�,�)
�	rc��tjrtjj	d�ddddddgtdd	��d
��D]W}t
|�r+|jtj|d�dd
|����9tjs�Jtd|����Y|jtjdd�d�y)Nr�i,�i-�i.�i1�i3�i5�i��i��rrmr�r5z  skipping cp=r�)u	rn)r�verboser�stdoutrCrNr9r
rOr��printrs  r�test_code_page_decode_flagsz(CodePageTest.test_code_page_decode_flags�s����?�?��J�J���T�"��%���u�e�2��%��)�2�+0�2�B�$�B�'�� � ��!8�!8��V�!D�j�TV�WY�VZ�R[�\��?�?��N�2�$�/�0�2�	
����0�0��V�<�2�	4rc�T�tjdddd�}|j|d�tjdddd�}|j|d�tjdddd�}|j|d	�tjdd
dd�}|j|d�y)Nr���riFr�s��)rrs��)u騾騾r�rmr�)rOr�r
)rr�s  r�test_incrementalzCodePageTest.test_incremental�s����)�)�#�w��%�H������'�*��)�)�#�*9�8�*/�1��	
����-�0��)�)�#�*=�x�*/�1��	
����"5�6��)�)�#�*0�(�*/�1��	
����*�-rc�.�d}d|��}tjd|��5	tj|�}|j	|j
d�tj|�	ddd�y#tj|�wxYw#1swYyxYw)Ni��r5z_winapi.GetACP)�return_valuerv)rr�rOr�r
r�r�)r�	code_pager��codecs    r�test_mbcs_aliaszCodePageTest.test_mbcs_alias�s~���	��I�;���
�Z�Z�(�y�
A�
(��
�
�d�+��� � ����V�4��!�!�$�'�B�
A��
�!�!�$�'��B�
A�s"�B�1A1�B�1B�B�Bl�F)rF�memuse�dry_runc�l�d|dzdz
zdz}|jt|�|dz�tjd|dd�}|j|dt|��~|jt|d	�|d�|j|d	dd
d�|j|d	ddd
�y)Ns01234567r/rMs
��������rr�r~Trr��
0123456701i��u(6701234567�����������r
rrOr��rrFrwr�s    r�test_large_inputzCodePageTest.test_large_input�s���
�4��7�A�+�.�>�?������W��t�A�v�.��)�)�#�w�8I�4�P��������S��\�2������W�Q�Z��'�!�*�5�������C�R��,�7�������C�D�)�:�	;rr�c�`�d|dzz}|jt|�|dzdz�tjd|dd�}|j|dt|��~|jt|d�|�|j|dddd	�|j|dd
dd�y)Ns
0123456턀r/r�r�r�TrMru0123456턀01i����u56턀0123456턀r/r0s    r�test_large_utf8_inputz"CodePageTest.test_large_utf8_input�s���
*�T�1�W�5������W��t�q�y�2�~�6��)�)�%��(�D�I��������S��\�2������W�Q�Z��$�/�������C�R��*;�<�������C�D�)�+B�CrN)r(r)r*r�r�r�r�r�rrrrr!r$r)r�
bigmemtestr1r3rrrr�r��s����G�G�L�D�$?� �B�$�(�4�&.�&
(��W���U�1�e�<�;�=�;�"�W���U�1�e�<�D�=�Drr�c�*�eZdZd�Zd�Zd�Zd�Zd�Zy)�	ASCIITestc�F�|jdjd�d�y)Nr|r�sabc123rgr�s rr:zASCIITest.test_encode�s���������1�9�=rc��dD]E\}}}|j|||��5|j|jd|�|�ddd��Gy#1swY�RxYw)N))�	[€ÿ€]r�r)r9r�s[???])r9r�s[&#128;&#255;&#8364;])u
[€ÿ€򫳞]r�s[\x80\xff\u20ac\U000abcde]�rr~r}r�r��r�r
rbr�s    r�test_encode_errorzASCIITest.test_encode_error�sb��.
�)�D�-�����4�}�'/��1�� � ����W�m�!D�!)�+�1�1�.
�1�1���#A�A	c�|�|jt�5djdd�ddd�y#1swYyxYw)Nu�ÿr�r~�r�r�rbr�s r�!test_encode_surrogateescape_errorz+ASCIITest.test_encode_surrogateescape_error�s.��
�
�
�1�
2�����):�;�3�
2�
2���2�;c�F�|jdjd�d�y)Nrmr�r�)r
rQr�s rr<zASCIITest.test_decode�s��������w�/��7rc��dD]E\}}}|j|||��5|j|jd|�|�ddd��Gy#1swY�RxYw)Nr|r�r�r�r�s    rr�zASCIITest.test_decode_error�sb��.
�)�D�-�����4�}�'/��1�� � ����W�m�!D�!)�+�1�1�
.
�1�1�r=N)r(r)r*r:r<r@r<r�rrrr6r6�s��>�+�<�
8�
+rr6c�$�eZdZd�Zd�Zd�Zd�Zy)�
Latin1Testc��dD]B\}}|j||��5|j|jd�|�ddd��Dy#1swY�OxYw)N))r�rm)u€éÿs��r�rcrr;�rr�rcs   rr:zLatin1Test.test_encode��N��
�N�D�(����4�(��;�� � ����X�!6��A�<�;�	
�<�;���"A	�	A	c��dD]E\}}}|j|||��5|j|jd|�|�ddd��Gy#1swY�RxYw)N))�[€�]r�r)rLr�s[??])u	[€򫳞]r�s[\u20ac\U000abcde])rLr�s[&#8364;&#56448;]r:r�rr;r�s    r�test_encode_errorszLatin1Test.test_encode_errors
sb��.
�)�D�-�����4�}�'/��1�� � ����X�}�!E�!)�+�1�1�.
�1�1�r=c�|�|jt�5djdd�ddd�y#1swYyxYw)Nu�€rr~r?r�s rr@z,Latin1Test.test_encode_surrogateescape_error
s.��
�
�
�1�
2��!�!�(�,=�>�3�
2�
2�rAc��dD]B\}}|j||��5|j|jd�|�ddd��Dy#1swY�OxYw)N))rmr�)r}u[€ÿ]rGrr�rHs   rr<zLatin1Test.test_decode
rIrJN)r(r)r*r:rMr@r<rrrrErE�s��B�+�?�
BrrEc�0�eZdZd�Zd�Zd�Zd�Zd�Zd�Zy)�StreamRecoderTestc�v�tj�}tjd�}tj||j
|jtjjtjj�}|jddg�|j|j�d�y)Nr�r��bsab)r|r}rOr�r�rbrQr�r�r�r��
writelinesr
r��r�bior(�srs    r�test_writelinesz!StreamRecoderTest.test_writelines"
sy���j�j�l���
�
�g�&��
�
!�
!�#�u�|�|�U�\�\�"+�/�/�">�">�	���@\�@\�^��
�
�
�t�T�l�#���������/rc��tj�}tjd�}tj||j
|jtjjtjj�}d}|j|jd��|j|j�|jd��y)Nruàñért)r|r}rOr�r�rbrQr�rtr�r�rCr
r�)rrVr(rWr�s     r�
test_writezStreamRecoderTest.test_write*
s����j�j�l���
�
�h�'��
�
!�
!�#�u�|�|�U�\�\�"+�/�/�">�">�	���@\�@\�^����
������X�&�'�����������W�)=�>rc���tjdjd��}tj|dd�}|j|j
�d�|jd�|j|j
�d�|j|j
�d�|j|j
�d�|j|j
�d�y)	Nzline1
line2
line3
rVrtsline1
rsline2
sline3
r)r|r}rbrOr�r
r�r��rrVrWs   r�test_seeking_readz#StreamRecoderTest.test_seeking_read5
s����j�j�0�7�7��D�E��
�
�
��W�k�
:���������
�3�
����
��������
�3��������
�3��������
�3���������,rc���tjdjd��}tj|dd�}|jd�|j
d�|j|j�d�|jd�|j|j�d�|j|j�d	�|j|j�d�y)
Nz
123456789
rVrtrs
abc
s789
rs1
sabc
)	r|r}rbrOr�r�rCr
r�r\s   r�test_seeking_writez$StreamRecoderTest.test_seeking_write@
s����j�j��-�-�k�:�;��
�
�
��W�k�
:��	����
�
�������������1�
����
���������/���������1���������1rc��tj�}tjd�}tj||j
|jtjjtjj�}|jtd�5tj|�ddd�|jtd�5tj|�ddd�y#1swY�>xYw#1swYyxYw)Nr�r�)r|r}rOr�r�rbrQr�r�r�r�rjr�r�r�rUs    rr�zStreamRecoderTest.test_copyN
s����j�j�l���
�
�g�&��
�
!�
!�#�u�|�|�U�\�\�"+�/�/�">�">�	���@\�@\�^���
#�
#�I��
?��I�I�b�M�@�
�
#�
#�I��
?��M�M�"��@�
?�@�
?��
?�
?�s�C0�C<�0C9�<Dc��td�}tjd�}tj||j|j
tjjtjj�}ttjdz�D]R}|j|��5|jtd�5tj ||�ddd�ddd��Ty#1swY�xYw#1swY�kxYw)Nrr�rMr�r�)r;rOr�r�rbrQr�r�r�r�rNr�r�r�rjr�r�)rrrr(rWr�s     rr�zStreamRecoderTest.test_pickleY
s����#�J���
�
�g�&��
�
!�
!�!�U�\�\�5�<�<�"+�/�/�">�">�	���@\�@\�^���6�2�2�Q�6�7�E����u��-��+�+�I��G��L�L��U�+�H�.�-�8�G�G��.�-�s$�/C<�C0�C<�0C9�5C<�<D	N)	r(r)r*rXrZr]r_r�r�rrrrQrQ!
s ��0�	?�	-�2�	�	,rrQzneed _testinternalcapi modulec��eZdZdZej
�ZdZdZdZ	dd�Z
d�Zd�Zd�Z
d	�Zd
�Zdd�Zd�Zd
�Zd�Zd�Zd�Zy)�LocaleCodecTestzD
    Test indirectly _Py_DecodeUTF8Ex() and _Py_EncodeUTF8Ex().
    )r�uulatin1:§éuu255:ÿu
UCS:é€􏿿usurrogates:��)s
blatin1:��sb255:�u��c�0�tj|d|�SrE)�_testinternalcapi�EncodeLocaleEx)rr�r?s   rrbzLocaleCodecTest.encoder
s�� �/�/��a��@�@rc	���|jD]^}|j|��5	|j|j|�}|j||�}|j	||�ddd��`y#t
$rg|j
t�5}|j||�ddd�n#1swYnxYwtj�}|j|d�Y�zwxYw#1swY��xYw)N)r�z!encode error: pos=[0-9]+, reason=)�STRINGSr�rb�ENCODINGr
r�r�r�rOrP�assertRegex)rr?r�rcrwrR�errmsgs       r�check_encode_stringsz$LocaleCodecTest.check_encode_stringsu
s����L�L�D����4��(�	8�#�{�{�4�=�=�&�A�H�#�k�k�$��7�G��$�$�W�h�7�)�(�!��*�S��*�*�<�8�B����D�&�1�9�8�8�� ����.�F��$�$�V�-Q�R�	S��)�(�sF�C"�A/�$C"�/C�
B)	� 	C�)B2
�..C�C"�C�C"�"C+	c�&�|jd�y�Nri�rlr�s r�test_encode_strictz"LocaleCodecTest.test_encode_strict�
����!�!�(�+rc�&�|jd�y�Nr~ror�s r�test_encode_surrogateescapez+LocaleCodecTest.test_encode_surrogateescape�
����!�!�"3�4rc���	|jdd�|jd�y#t$r8}t|�dk(r|j|j�d��n�Yd}~�Nd}~wwxYw)Nrgr��unsupported error handlerz4 encoder doesn't support surrogatepass error handler)rbrMrOr�rirl�rr�s  r�test_encode_surrogatepassz)LocaleCodecTest.test_encode_surrogatepass�
sm��	��K�K��O�,�	
�!�!�/�2���	��3�x�6�6��
�
���� 1�2<�=�>��>��	���&�	A'�.A"�"A'c���|jt�5}|jdd�ddd�|jt	j
�d�y#1swY�/xYw)Nrgr�rw)r�rMrbr
rOrP�rrRs  r�%test_encode_unsupported_error_handlerz5LocaleCodecTest.test_encode_unsupported_error_handler�
sI��
�
�
�z�
*�b��K�K��.�/�+�����R�\�\�*�,G�H�+�
*���A�A c�0�tj|d|�SrE)re�DecodeLocaleEx)rrwr?s   rrQzLocaleCodecTest.decode�
s�� �/�/���F�C�Crc	�P�|jdk(}|rd}nd}t|j�}|jD]j}	|j	|j|�}||vr|j|�|s�8|j	|jd�}||k7s�Z|j|��l|D]^}|j|��5	|j|j|�}|j||�}	|j|	|�ddd��`y#t$rd}Y��wxYw#t$rv|jt�5}
|j||�ddd�n#1swYnxYwt
j�}|j|j!d�|�Y��wxYw#1swY��xYw)Nrtr~rir�)rwzdecode error: )rir��
BYTES_STRINGSrhrbr�r�r�rQr
r�r�r�rOrPrV�
startswith)rr?�is_utf8�
encode_errors�stringsr�rw�encoded2rcr�rRrks            r�check_decode_stringsz$LocaleCodecTest.check_decode_strings�
su���=�=�G�+���-�M�$�M��t�)�)�*���L�L�D�
��+�+�d�m�m�]�C���'�)��N�N�7�+���;�;�t�}�}�o�F���w�&��N�N�8�,�!��G����g��.�	8�&�~�~�d�m�m�V�D�H�#�k�k�'�6�:�G��$�$�W�h�7�/�.���&�
���
��*�Q��*�*�<�8�B����G�V�4�9�8�8�� ����.�F��O�O�F�$5�$5�6F�$G��P�	Q��/�.�sY�1D	�<F�>D�$F�	D�D�F�8E	�	F�E
�=F�F�F�F�F%	c�&�|jd�yrn�r�r�s r�test_decode_strictz"LocaleCodecTest.test_decode_strict�
rqrc�&�|jd�yrsr�r�s r�test_decode_surrogateescapez+LocaleCodecTest.test_decode_surrogateescape�
rurc���	|jdd�|jd�y#t$r8}t|�dk(r|j|j�d��n�Yd}~�Nd}~wwxYw)Nrr�rwz4 decoder doesn't support surrogatepass error handler)rQrMrOr�rir�rxs  r�test_decode_surrogatepassz)LocaleCodecTest.test_decode_surrogatepass�
sm��	��K�K��_�-�	
�!�!�/�2���	��3�x�6�6��
�
���� 1�2<�=�>��>��	�rzc���|jt�5}|jdd�ddd�|jt	j
�d�y#1swY�/xYw)Nrr�rw)r�rMrQr
rOrPr|s  r�%test_decode_unsupported_error_handlerz5LocaleCodecTest.test_decode_unsupported_error_handler�
sI��
�
�
�z�
*�b��K�K��/�0�+�����R�\�\�*�,G�H�+�
*�r~Nrh)r(r)r*rIr�getfilesystemencodingrirhr��
SURROGATESrbrlrprtryr}rQr�r�r�r�r�rrrrcrce
sm���)�s�(�(�*�H�*�G�8�M��J�A�8�,�5�
3�I�
D� 8�D,�5�
3�Irrcc�(�eZdZdZd�Zd�Zd�Zd�Zy)�	Rot13Testz"Test the educational ROT-13 codec.c�T�tjdd�}|j|d�y)NzCaesar liked ciphers�rot-13zPnrfne yvxrq pvcuref)rOrbr
)r�
ciphertexts  rr:zRot13Test.test_encode�
s$���]�]�#9�8�D�
�����%;�<rc�T�tjdd�}|j|d�y)Nz
Rg gh, Oehgr?r�z
Et tu, Brute?)rOrQr
)r�	plaintexts  rr<zRot13Test.test_decode�
s"���M�M�/�8�<�	�����O�4rc�~�tjd��}|jd�}|j|d�y)Nr�zABBA nag Cheryl BakerzNOON ant Purely Onxre)rOrarbr
)rr~r�s   rrz!Rot13Test.test_incremental_encode�
s7��8�&�.�.�x�8�:���^�^�$;�<�
�����%<�=rc�~�tjd��}|jd�}|j|d�y)Nr�zterra Ares envy thazgreen Nerf rail gun)rOrPrQr
)rrzr�s   rr{z!Rot13Test.test_incremental_decode�
s7��8�&�.�.�x�8�:���N�N�#8�9�	�����$9�:rN)r(r)r*rIr:r<rr{rrrr�r��
s��,�=�5�>�
;rr�c��eZdZdZd�Zy)�
Rot13UtilTestz�Test the ROT-13 codec via rot13 function,
    i.e. the user has done something like:
    $ echo "Hello World" | python -m encodings.rot_13
    c���ddlm}tjd�}tj�}|||�|j	d�|j�}|j
|d�y)Nr)rFz)Gb or, be abg gb or, gung vf gur dhrfgvbaz)To be, or not to be, that is the question)�encodings.rot_13rFr|r�r�rHr
)rrF�infile�outfile�
plain_texts     r�test_rot13_funczRot13UtilTest.test_rot13_func�
sS��*����H�I���+�+�-��
�f�g�����Q���\�\�^�
�����7�	9rN)r(r)r*rIr�rrrr�r��
s���	9rr�c��eZdZdZd�Zd�Zy)�CodecNameNormalizationTestzTest codec name normalizationc�j���d�d���fd�}tj|�|jtj|�|j	�tj
d��|j	�tj
d��|j	�tj
d��|j	�tj
d��|j	�tj
d��|j	�tj
d	��|j	�tj
d
��|j	�tj
d��|j	�tj
d��|j	�tj
d
��y)N)rMrrnr�)NNNNc���|dk(r�S�S)N�aaa_8r)rX�FOUND�	NOT_FOUNDs ��rr�zFCodecNameNormalizationTest.test_codecs_lookup.<locals>.search_functions����7�"��� � rr�zAAA-8zAAA---8zAAA   8u
aaaé€-8zAAA.8zAAA...8zBBB-8zBBB.8uaé€-8)rOr�rAr�r
r�)rr�r�r�s  @@r�test_codecs_lookupz-CodecNameNormalizationTest.test_codecs_lookup�
s/�����,�	�	!�	����(�����)�)�?�;������
�
�g� 6�7������
�
�g� 6�7������
�
�i� 8�9������
�
�i� 8�9������
�
�.?� @�A�����F�M�M�'�$:�;�����F�M�M�)�$<�=�����F�M�M�'�$:�;�����F�M�M�'�$:�;�����F�M�M�/�$B�Crc�D�tj}|j|d�d�|j|d�d�|j|d�d�|j|d�d�|j|d�d�|j|d�d�y)Nrtuutfé€􏿿-8zutf   8zUTF 8�UTF_8zutf.8zutf...8)r��normalize_encodingr
)r�	normalizes  r�!test_encodings_normalize_encodingz<CodecNameNormalizationTest.test_encodings_normalize_encodings����0�0�	�����7�+�W�5�����#>�?��I�����9�-�w�7�	
����7�+�W�5�����7�+�W�5�����9�-�y�9rN)r(r)r*rIr�r�rrrr�r��
s��'�D�,
:rr��__main__)XrOr�r�r|r�r�rr�r�r�testr�test.supportrr��ImportErrorrer2�sizeof�c_wchar�SIZEOF_WCHAR_Trr9r�r;rKre�TestCaser�rr+r3rUrlrsr�r�r�r�rr5rZrr �reprr1rRrNrZr�r�rrrr�r�r�r�rzr�r�r�r�rr"r)r5rOr}rIrKrMr�r�r�r��platformr�r6rErQr�rcr�r�r�r(�mainrrr�<module>r�s���
���	�
�
�
�����"�����3��
#�V�]�]�6�>�>�2�N��$�(�F��*-�-�DQ=�&�Q=�h
]>��(�+�+�]>�@+>�(�H�-�-�+>�\+>�(�H�-�-�+>�\`-��(�+�+�`-�F*'�(�H�-�-�*'�X*'�(�H�-�-�*'�X[H�x��*�*�[H�|CK�x��*�*�CK�L>�(�#�#�>�C�X�&�&�C� S-�(�H�-�-�S-�l<H�x�(�(�<H�@e��N
�A�
�1�v�q�y�
�d�1�g��
�
P�8�$�$�P�BV��rP�8�$�$�P�(Z6�H�%�%�Z6�z~)�x�(�(�~)�B+�x�(�(�+�2+�x�(�(�+�(+�X�.�.�+�*
0�h�'�'�
0�f��P�6�=�!�� � ��(�
�6�<� �� � ��'�� ��
_R�x�(�(�*A�_R�Du
�(�#�#�u
�p1�8�$�$�1�&L��!�!�&L�RC
��(�"3�"3�C
�JP
�8�X�%6�%6�P
�fO�x�(�(�O�(2�(�+�+�2�D65�h���65�r���y�)���E����i���6���$�$�\�2�',�f�o��l�#�-���$�$�[�1�&+�W��k�"�~F��*�*�~F�L��(�E3��*�*�E3�R����S�\�\�W�,�9�;�XD�8�$�$�XD�;�XD�v$+��!�!�$+�N"B��"�"�"B�JA,��)�)�A,�H����"�d�*�,K�L�nI�h�'�'�nI�M�nI�b;��!�!�;�*9�H�%�%�9�"":��!2�!2�":�J�z���H�M�M�O���cp���I���������
��
�F��N���vU���D����	��	�sX�S�S�S+�-S;�
T	�S�S�S(�'S(�+	S8�7S8�;T�T�	T�T

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists