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_plistlib.cpython-312.pyc

�

'Μg�����ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlmZddlmZddlmZddlmZej*ej,fZej*ej0d�ej,ej0d�dej0d	�iZd
Zgd�ZGd�d
ej8�ZGd�dej8�ZGd�dej8�ZGd�dej8�Z ejBejDdk(d�Gd�dej8��Z#e$dk(rejJ�yy)�N)�support)�	os_helper)�BytesIO)�UIDs�

        PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NU
        WVBFIHBsaXN0IFBVQkxJQyAiLS8vQXBwbGUvL0RURCBQTElTVCAxLjAvL0VO
        IiAiaHR0cDovL3d3dy5hcHBsZS5jb20vRFREcy9Qcm9wZXJ0eUxpc3QtMS4w
        LmR0ZCI+CjxwbGlzdCB2ZXJzaW9uPSIxLjAiPgo8ZGljdD4KCTxrZXk+YUJp
        Z0ludDwva2V5PgoJPGludGVnZXI+OTIyMzM3MjAzNjg1NDc3NTc2NDwvaW50
        ZWdlcj4KCTxrZXk+YUJpZ0ludDI8L2tleT4KCTxpbnRlZ2VyPjkyMjMzNzIw
        MzY4NTQ3NzU4NTI8L2ludGVnZXI+Cgk8a2V5PmFEYXRlPC9rZXk+Cgk8ZGF0
        ZT4yMDA0LTEwLTI2VDEwOjMzOjMzWjwvZGF0ZT4KCTxrZXk+YURpY3Q8L2tl
        eT4KCTxkaWN0PgoJCTxrZXk+YUZhbHNlVmFsdWU8L2tleT4KCQk8ZmFsc2Uv
        PgoJCTxrZXk+YVRydWVWYWx1ZTwva2V5PgoJCTx0cnVlLz4KCQk8a2V5PmFV
        bmljb2RlVmFsdWU8L2tleT4KCQk8c3RyaW5nPk3DpHNzaWcsIE1hw588L3N0
        cmluZz4KCQk8a2V5PmFub3RoZXJTdHJpbmc8L2tleT4KCQk8c3RyaW5nPiZs
        dDtoZWxsbyAmYW1wOyAnaGknIHRoZXJlISZndDs8L3N0cmluZz4KCQk8a2V5
        PmRlZXBlckRpY3Q8L2tleT4KCQk8ZGljdD4KCQkJPGtleT5hPC9rZXk+CgkJ
        CTxpbnRlZ2VyPjE3PC9pbnRlZ2VyPgoJCQk8a2V5PmI8L2tleT4KCQkJPHJl
        YWw+MzIuNTwvcmVhbD4KCQkJPGtleT5jPC9rZXk+CgkJCTxhcnJheT4KCQkJ
        CTxpbnRlZ2VyPjE8L2ludGVnZXI+CgkJCQk8aW50ZWdlcj4yPC9pbnRlZ2Vy
        PgoJCQkJPHN0cmluZz50ZXh0PC9zdHJpbmc+CgkJCTwvYXJyYXk+CgkJPC9k
        aWN0PgoJPC9kaWN0PgoJPGtleT5hRmxvYXQ8L2tleT4KCTxyZWFsPjAuNTwv
        cmVhbD4KCTxrZXk+YUxpc3Q8L2tleT4KCTxhcnJheT4KCQk8c3RyaW5nPkE8
        L3N0cmluZz4KCQk8c3RyaW5nPkI8L3N0cmluZz4KCQk8aW50ZWdlcj4xMjwv
        aW50ZWdlcj4KCQk8cmVhbD4zMi41PC9yZWFsPgoJCTxhcnJheT4KCQkJPGlu
        dGVnZXI+MTwvaW50ZWdlcj4KCQkJPGludGVnZXI+MjwvaW50ZWdlcj4KCQkJ
        PGludGVnZXI+MzwvaW50ZWdlcj4KCQk8L2FycmF5PgoJPC9hcnJheT4KCTxr
        ZXk+YU5lZ2F0aXZlQmlnSW50PC9rZXk+Cgk8aW50ZWdlcj4tODAwMDAwMDAw
        MDA8L2ludGVnZXI+Cgk8a2V5PmFOZWdhdGl2ZUludDwva2V5PgoJPGludGVn
        ZXI+LTU8L2ludGVnZXI+Cgk8a2V5PmFTdHJpbmc8L2tleT4KCTxzdHJpbmc+
        RG9vZGFoPC9zdHJpbmc+Cgk8a2V5PmFuRW1wdHlEaWN0PC9rZXk+Cgk8ZGlj
        dC8+Cgk8a2V5PmFuRW1wdHlMaXN0PC9rZXk+Cgk8YXJyYXkvPgoJPGtleT5h
        bkludDwva2V5PgoJPGludGVnZXI+NzI4PC9pbnRlZ2VyPgoJPGtleT5uZXN0
        ZWREYXRhPC9rZXk+Cgk8YXJyYXk+CgkJPGRhdGE+CgkJUEd4dmRITWdiMlln
        WW1sdVlYSjVJR2QxYm1zK0FBRUNBenhzYjNSeklHOW1JR0pwYm1GeWVTQm5k
        VzVyCgkJUGdBQkFnTThiRzkwY3lCdlppQmlhVzVoY25rZ1ozVnVhejRBQVFJ
        RFBHeHZkSE1nYjJZZ1ltbHVZWEo1CgkJSUdkMWJtcytBQUVDQXp4c2IzUnpJ
        RzltSUdKcGJtRnllU0JuZFc1clBnQUJBZ004Ykc5MGN5QnZaaUJpCgkJYVc1
        aGNua2daM1Z1YXo0QUFRSURQR3h2ZEhNZ2IyWWdZbWx1WVhKNUlHZDFibXMr
        QUFFQ0F6eHNiM1J6CgkJSUc5bUlHSnBibUZ5ZVNCbmRXNXJQZ0FCQWdNOGJH
        OTBjeUJ2WmlCaWFXNWhjbmtnWjNWdWF6NEFBUUlECgkJUEd4dmRITWdiMlln
        WW1sdVlYSjVJR2QxYm1zK0FBRUNBdz09CgkJPC9kYXRhPgoJPC9hcnJheT4K
        CTxrZXk+c29tZURhdGE8L2tleT4KCTxkYXRhPgoJUEdKcGJtRnllU0JuZFc1
        clBnPT0KCTwvZGF0YT4KCTxrZXk+c29tZU1vcmVEYXRhPC9rZXk+Cgk8ZGF0
        YT4KCVBHeHZkSE1nYjJZZ1ltbHVZWEo1SUdkMWJtcytBQUVDQXp4c2IzUnpJ
        RzltSUdKcGJtRnllU0JuZFc1clBnQUJBZ004CgliRzkwY3lCdlppQmlhVzVo
        Y25rZ1ozVnVhejRBQVFJRFBHeHZkSE1nYjJZZ1ltbHVZWEo1SUdkMWJtcytB
        QUVDQXp4cwoJYjNSeklHOW1JR0pwYm1GeWVTQm5kVzVyUGdBQkFnTThiRzkw
        Y3lCdlppQmlhVzVoY25rZ1ozVnVhejRBQVFJRFBHeHYKCWRITWdiMllnWW1s
        dVlYSjVJR2QxYm1zK0FBRUNBenhzYjNSeklHOW1JR0pwYm1GeWVTQm5kVzVy
        UGdBQkFnTThiRzkwCgljeUJ2WmlCaWFXNWhjbmtnWjNWdWF6NEFBUUlEUEd4
        dmRITWdiMllnWW1sdVlYSjVJR2QxYm1zK0FBRUNBdz09Cgk8L2RhdGE+Cgk8
        a2V5PsOFYmVucmFhPC9rZXk+Cgk8c3RyaW5nPlRoYXQgd2FzIGEgdW5pY29k
        ZSBrZXkuPC9zdHJpbmc+CjwvZGljdD4KPC9wbGlzdD4Ks\
        YnBsaXN0MDDfEBABAgMEBQYHCAkKCwwNDg8QERITFCgpLzAxMjM0NTc2OFdh
        QmlnSW50WGFCaWdJbnQyVWFEYXRlVWFEaWN0VmFGbG9hdFVhTGlzdF8QD2FO
        ZWdhdGl2ZUJpZ0ludFxhTmVnYXRpdmVJbnRXYVN0cmluZ1thbkVtcHR5RGlj
        dFthbkVtcHR5TGlzdFVhbkludFpuZXN0ZWREYXRhWHNvbWVEYXRhXHNvbWVN
        b3JlRGF0YWcAxQBiAGUAbgByAGEAYRN/////////1BQAAAAAAAAAAIAAAAAA
        AAAsM0GcuX30AAAA1RUWFxgZGhscHR5bYUZhbHNlVmFsdWVaYVRydWVWYWx1
        ZV1hVW5pY29kZVZhbHVlXWFub3RoZXJTdHJpbmdaZGVlcGVyRGljdAgJawBN
        AOQAcwBzAGkAZwAsACAATQBhAN9fEBU8aGVsbG8gJiAnaGknIHRoZXJlIT7T
        HyAhIiMkUWFRYlFjEBEjQEBAAAAAAACjJSYnEAEQAlR0ZXh0Iz/gAAAAAAAA
        pSorLCMtUUFRQhAMoyUmLhADE////+1foOAAE//////////7VkRvb2RhaNCg
        EQLYoTZPEPo8bG90cyBvZiBiaW5hcnkgZ3Vuaz4AAQIDPGxvdHMgb2YgYmlu
        YXJ5IGd1bms+AAECAzxsb3RzIG9mIGJpbmFyeSBndW5rPgABAgM8bG90cyBv
        ZiBiaW5hcnkgZ3Vuaz4AAQIDPGxvdHMgb2YgYmluYXJ5IGd1bms+AAECAzxs
        b3RzIG9mIGJpbmFyeSBndW5rPgABAgM8bG90cyBvZiBiaW5hcnkgZ3Vuaz4A
        AQIDPGxvdHMgb2YgYmluYXJ5IGd1bms+AAECAzxsb3RzIG9mIGJpbmFyeSBn
        dW5rPgABAgM8bG90cyBvZiBiaW5hcnkgZ3Vuaz4AAQIDTTxiaW5hcnkgZ3Vu
        az5fEBdUaGF0IHdhcyBhIHVuaWNvZGUga2V5LgAIACsAMwA8AEIASABPAFUA
        ZwB0AHwAiACUAJoApQCuALsAygDTAOQA7QD4AQQBDwEdASsBNgE3ATgBTwFn
        AW4BcAFyAXQBdgF/AYMBhQGHAYwBlQGbAZ0BnwGhAaUBpwGwAbkBwAHBAcIB
        xQHHAsQC0gAAAAAAAAIBAAAAAAAAADkAAAAAAAAAAAAAAAAAAALs�
KEYED_ARCHIVEs~
        YnBsaXN0MDDUAQIDBAUGHB1YJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVy
        VCR0b3ASAAGGoKMHCA9VJG51bGzTCQoLDA0OVnB5dHlwZVYkY2xhc3NZTlMu
        c3RyaW5nEAGAAl8QE0tleUFyY2hpdmUgVUlEIFRlc3TTEBESExQZWiRjbGFz
        c25hbWVYJGNsYXNzZXNbJGNsYXNzaGludHNfEBdPQ19CdWlsdGluUHl0aG9u
        VW5pY29kZaQVFhcYXxAXT0NfQnVpbHRpblB5dGhvblVuaWNvZGVfEBBPQ19Q
        eXRob25Vbmljb2RlWE5TU3RyaW5nWE5TT2JqZWN0ohobXxAPT0NfUHl0aG9u
        U3RyaW5nWE5TU3RyaW5nXxAPTlNLZXllZEFyY2hpdmVy0R4fVHJvb3SAAQAI
        ABEAGgAjAC0AMgA3ADsAQQBIAE8AVgBgAGIAZAB6AIEAjACVAKEAuwDAANoA
        7QD2AP8BAgEUAR0BLwEyATcAAAAAAAACAQAAAAAAAAAgAAAAAAAAAAAAAAAA
        AAABOQ==s<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd" [
   <!ENTITY entity "replacement text">
  ]>
<plist version="1.0">
  <dict>
    <key>A</key>
    <string>&entity;</string>
  </dict>
</plist>
)()ztoo short data�)z1too large offset_table_offset and offset_size = 1s"*)z9too large offset_table_offset and nonstandard offset_sizes$,)z'integer overflow in offset_table_offsets"��������)ztoo large top_objects"	)zinteger overflow in top_objects"��������	)z)too large num_objects and offset_size = 1s"�	)z1too large num_objects and nonstandard offset_sizes$�	)z%extremally large num_objects (32 bit)s"���	)z%extremally large num_objects (64 bit)s"�����	)zinteger overflow in num_objectss"��������	)zoffset_size = 0s"	)zref_size = 0s%�
)ztoo large offsets"*	)zinteger overflow in offsets)��������	)ztoo large array sizes'��
)z$extremally large array size (32-bit)s*����)z$extremally large array size (64-bit)s.������)zinteger overflow in array sizes.���������)ztoo large reference indexs%�
)z#integer overflow in reference indexs,���������)ztoo large bytes sizes%O#A)z$extremally large bytes size (32-bit)s(O���A)z$extremally large bytes size (64-bit)s,O�����A)zinteger overflow in bytes sizes,O��������A)ztoo large ASCII sizes%_#A)z$extremally large ASCII size (32-bit)s(_���A)z$extremally large ASCII size (64-bit)s,_�����A)zinteger overflow in ASCII sizes,_��������A)z
invalid ASCIIs#Q�
)ztoo large UTF-16 sizes'o �)z%extremally large UTF-16 size (32-bit)s*oO��� �)z%extremally large UTF-16 size (64-bit)s.o����� �)zinteger overflow in UTF-16 sizes.o�������� �)zinvalid UTF-16s$a�)znon-hashable keys&��)z&too large datetime (datetime overflow)s*3BP)z'too large datetime (timedelta overflow)s*3B�)zinvalid datetime (Infinity)s*3�)zinvalid datetime (NaN)s*3�c��eZdZd�Zd/d�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�Zd�Zd�Zd�Zd�Zd�Zd�Z d �Z!d!�Z"d"�Z#d#�Z$d$�Z%d%�Z&d&�Z'd'�Z(d(�Z)d)�Z*d*�Z+d+�Z,d,�Z-d-�Z.d.�Z/y)0�TestPlistlibc�Z�	tjtj�y#YyxYw�N)�os�unlinkr�TESTFN��selfs �//usr/local/lib/python3.12/test/test_plistlib.py�tearDownzTestPlistlib.tearDown�s#��	��I�I�i�&�&�'��	��s�#&�*Nc���tdddddgd�gddd	d
ddtd
dddtddgd�����dddgtjdddddd�t�t���}d|d<|S)N�Doodah�A�B�g@@@)���g�?i�l����l,���l���� �@Jz<hello & 'hi' there!>u
Mässig, MaßTF�)rr�text��a�b�c)�
anotherString�
aUnicodeValue�
aTrueValue�aFalseValue�
deeperDict�
<binary gunk>�<lots of binary gunk><lots of binary gunk><lots of binary gunk><lots of binary gunk><lots of binary gunk><lots of binary gunk><lots of binary gunk><lots of binary gunk><lots of binary gunk><lots of binary gunk>���
��!)�aString�aList�aFloat�anInt�aBigInt�aBigInt2�aNegativeInt�aNegativeBigInt�aDict�someData�someMoreData�
nestedData�aDate�anEmptyDict�anEmptyListzThat was a unicode key.uÅbenraa)�dict�datetime�list)r�fmt�pls   r�_createzTestPlistlib._create�s���
����R��y�1���"�#��*��5�1��!��"���?��(�@�?�@��%�%�d�B��B��B�?��&��&�+
��.5��<���	rc�~�|j�}|j|dd�|j|ddd�y)Nr.rr6r&F)rB�assertEqual)rrAs  r�test_createzTestPlistlib.test_create�s:��
�\�\�^������I���1�����G��]�3�U�;rc��|j�}ttjd�5}t	j
||�ddd�ttjd�5}t	j|�}ddd�|jt|�t��|jttj
|d�|jttjd�y#1swY��xYw#1swY��xYw)N�wb�rb�filename)rB�openrr�plistlib�dump�loadrDr=�assertRaises�AttributeError)rrA�fp�pl2s    r�test_iozTestPlistlib.test_io�s���
�\�\�^��
�)�"�"�D�
)�R��M�M�"�b�!�*��)�"�"�D�
)�R��-�-��#�C�*�	
����b��4��9�-����.�(�-�-��Z�H����.�(�-�-��D�*�
)��*�
)�s�C2�$C>�2C;�>Dc���t�g}tD]D}|j|��5|jtt
j||��ddd��Fy#1swY�QxYw�N�r@)�object�ALL_FORMATS�subTestrN�	TypeErrorrK�dumps)rrAr@s   r�test_invalid_typezTestPlistlib.test_invalid_type�sM���x�\���C����#��&��!�!�)�X�^�^�R�S�!�I�'�&��&�&�s�(A�A#	c�B�|jt�5td�ddd�|jt�5td�ddd�|jt�5td�ddd�y#1swY�\xYw#1swY�?xYw#1swYyxYw)Nz
not an int�i��)rNrYr�
ValueErrorrs r�test_invalid_uidzTestPlistlib.test_invalid_uid�sk��
�
�
�y�
)����*�
�
�
�z�
*���L�+�
�
�
�z�
*���H�+�
*�	*�
)��
*�
*��
*�
*�s"�A=�B	�(B�=B�	B�Bc	�R�dD]�}tD]�}|j||��5tj||��}tj|�}|j|t�|j||�tj||��}|j||�ddd�����tD]Z}dddzdz
dddzfD]E}|j||��5|jttj||��ddd��G�\y#1swY��xYw#1swY�axYw)	N)r��i���l���l����l����rl�����rAr@rUlr�rl����)
rWrXrKrZ�loads�assertIsInstance�intrDrN�
OverflowError�rrAr@�datarQ�data2s      r�test_intzTestPlistlib.test_int�s��0�B�"���\�\�R�S�\�1�#�>�>�"�#�6�D�"�.�.��.�C��)�)�#�s�3��$�$�R��-�$�N�N�3�C�8�E��$�$�T�5�1�
2�1�#�0��C�"�A��H�Q�J���c��	�B���\�\�R�S�\�1��%�%�m�X�^�^�&(�c�&�3�2�1�C��2�1��2�1�s�A>D�(D�D�D&c��dD]�}tD]�}|j||��5tjt	|�|��}tj
|�}|j
|t�|j||�tj||��}|j||�ddd�����y#1swY��xYw)N)r(r)rerU)	rWrXrKrZ�	bytearrayrgrh�bytesrDrks      r�test_bytearrayzTestPlistlib.test_bytearray�s���K�B�"���\�\�R�S�\�1�#�>�>�)�B�-�S�A�D�"�.�.��.�C��)�)�#�u�5��$�$�S�"�-�$�N�N�3�C�8�E��$�$�T�5�1�
2�1�#�L�1�1�s�BB6�6B?c��|j�}tj|�}tj|�}|j	t|�t|��tj|�}|j	||�yr)rBrKrZrgrDr=)rrArlrQrms     r�
test_byteszTestPlistlib.test_bytes�s_��
�\�\�^���~�~�b�!���n�n�T�"������b��4��9�-����s�#������u�%rc��ddigggggggg}|jtjtj|��|�y)N�test�aaaaaa�rDrKrgrZ�rrls  r�test_indentation_arrayz#TestPlistlib.test_indentation_array�sF���	�*�+�,�-�.�/�0�1�2�����������t�(<�=�t�Drc
��ddddddddd	d
iiiiiiiii}|jtjtj|��|�y)N�1�2�3�4�5�6�7�8�9rwrxrys  r�test_indentation_dictz"TestPlistlib.test_indentation_dictsV���c�C�#��c�C�#��Y�?O�9P�3Q�-R�'S�!T�U�V�W�����������t�(<�=�t�Drc��dddddigggggigii}|jtjtj|��|�y)Nr|r}r~rvrwrxrys  r�test_indentation_dict_mixz&TestPlistlib.test_indentation_dict_mixsO���c�S��	�':�&;�%<�$=�#>�"?�@�A�B�C�����������t�(<�=�t�Drc��td�}|jtjtj|tj
���|�td�td�td�td�td�td�d	�}|jtjtj|tj
���|�y)
NrrUrrrbrcrdl)�uid0�uid2�uid8�uid16�uid32�uid63)rrDrKrgrZ�
FMT_BINARY)rrl�	dict_datas   r�test_uidzTestPlistlib.test_uids����1�v�����������t��AT�AT�(U�V�X\�]���F���F���K���\���\���\�

�	�	
���������y�h�FY�FY�(Z�[�]f�grc�R�td�}|j|jd�y�Nr)rrDrl)r�uids  r�
test_uid_datazTestPlistlib.test_uid_datas���!�f��������1�%rc���|jtd�td��|jtd�td��|jtd�d�y)Nrrznot uid)rDr�assertNotEqualrs r�test_uid_eqzTestPlistlib.test_uid_eqsF������Q���Q��(����C��F�C��F�+����C��F�I�.rc�p�|jttd��ttd���yr�)rD�hashrrs r�
test_uid_hashzTestPlistlib.test_uid_hash!s"������c�!�f��t�C��F�|�4rc�L�|jttd��d�y)NrzUID(1))rD�reprrrs r�
test_uid_reprzTestPlistlib.test_uid_repr$s������c�!�f��x�0rc�`�|jtjtd��d�yr�)rD�operator�indexrrs r�test_uid_indexzTestPlistlib.test_uid_index's���������A��/��3rc
���ttjdz�D]N}|jtjtj
t
d�|���t
d���Py)Nr�)�protocol)�range�pickle�HIGHEST_PROTOCOLrDrgrZr)r�protos  r�test_uid_picklezTestPlistlib.test_uid_pickle*sK���6�2�2�Q�6�7�E����V�\�\�&�,�,�s�2�w��*O�P�RU�VX�RY�Z�8rc���|jtjtd��td��|jtjtd��td��yr�)rD�copyr�deepcopyrs r�
test_uid_copyzTestPlistlib.test_uid_copy.sD��������3�q�6�*�C��F�3�������s�1�v�.��A��7rc��tD]j}|j|��5tjt|�}tj
||��}|j
|t|d�ddd��ly#1swY�wxYw�NrUz2generated data was not identical to Apple's output)rWrXrKrg�TESTDATArZrD)rr@rArls    r�test_appleformattingz!TestPlistlib.test_appleformatting2se���C����#��&��^�^�H�S�M�2���~�~�b�c�2��� � ��x��}�H�J�'�&��&�&�s�AA5�5A>	c��d|_tD]�}|j|��5|j|��}t	j
t||��}|jt|�t|�d�t	j
t|�}|jt|�t|�d�ddd���y#1swY��xYwr�)	�maxDiffrWrXrBrKrgr�rDr=)rr@rArQs    r�test_appleformattingfromliteralz,TestPlistlib.test_appleformattingfromliteral;s�������C����#��&��\�\�c�\�*���n�n�X�c�]��<��� � ��b��4��9�H�J��n�n�X�c�]�3��� � ��b��4��9�H�J�
'�&��&�&�s�BC�C	c��tD]�}|j|��5t�}|j|��}t	j
|||��t	jt|j��|��}|jt|�t|��t	jt|j���}|jt|�t|��ddd���y#1swY��xYwrT)
rWrXrrBrKrLrM�getvaluerDr=)rr@r!rArQs     r�test_bytesiozTestPlistlib.test_bytesioGs����C����#��&��I���\�\�c�\�*���
�
�b�!��-��m�m�G�A�J�J�L�$9�s�C��� � ��b��4��9�5��m�m�G�A�J�J�L�$9�:��� � ��b��4��9�5�'�&��&�&�s�CC>�>D	c	�|�tj�}d|d<d|d<d|d<tD�]}dD]�}|j||��5t	�}tj||||��tjt	|j��tj�	�}|jt|�t|��|r,|jt|j��gd
��n+|jt|j��gd��ddd�����y#1swY��xYw�Nrr!rr rr")FT)r@�	sort_keys)�	dict_typer)r!r r")
�collections�OrderedDictrWrXrrKrLrMr�rDr=r?�keys)rrAr@r�r!rQs      r�test_keysort_bytesioz!TestPlistlib.test_keysort_bytesioRs���
�
$�
$�
&����3����3����3���;�C�*�	��\�\�c�Y�\�?��	�A��M�M�"�a�S�I�F�"�-�-���
�
��(=�"-�"9�"9�;�C��$�$�T�"�X�t�C�y�9� ��(�(��c�h�h�j�)9�?�K��(�(��c�h�h�j�)9�?�K�@�?�+��?�?�s
�CD1�1D;c	�2�tj�}d|d<d|d<d|d<tD]�}dD]�}|j||��5t	j
|||��}t	j|tj�	�}|jt|�t|��|r,|jt|j��gd
��n+|jt|j��gd��ddd�����y#1swY��xYwr�)r�r�rWrXrKrZrgrDr=r?r�)rrAr@r�rlrQs      r�test_keysortzTestPlistlib.test_keysortgs���
�
$�
$�
&����3����3����3���C�*�	��\�\�c�Y�\�?�#�>�>�"�#��K�D�"�.�.���9P�9P�Q�C��$�$�T�"�X�t�C�y�9� ��(�(��c�h�h�j�)9�?�K��(�(��c�h�h�j�)9�?�K�@�?�+��?�?�s
�B;D
�
Dc	�"�ddi}tD]v}|j|��5|jttj
||��t
�}|jttj|||��ddd��xy#1swY��xYw)N�*�aNumberrU)rWrXrNrYrKrZrrL)rrAr@r!s    r�test_keys_no_stringz TestPlistlib.test_keys_no_stringysr���9�
���C����#��&��!�!�)�X�^�^�R�S�!�I��I���!�!�)�X�]�]�B��s�!�K�	'�&��&�&�s�AB�B	c	���ddd�}tD]�}|j|��5tj||dd��}tj|�}|j|ddi�t
�}tj|||dd��|j�}tj|j��}|j|ddi�ddd���y#1swY��xYw)	Nr��aWord)r��snakerUTF)r@�skipkeysr�r�)	rWrXrKrZrgrDrrLr�)rrAr@rlrQrPs      r�
test_skipkeyszTestPlistlib.test_skipkeys�s�����
��
�C����#��&��~�~��C�$�%�A���n�n�T�*��� � ��w��&8�9��Y���
�
����d�e�E��{�{�}���n�n�R�[�[�]�3��� � ��w��&8�9�'�&��&�&�s�B.C�C#	c	�Z�dddd�}tD]�}|j|��5tj||��}tj|�}|j|ddgddgddgd��|tjk7r|j|d	|d
�ddd���y#1swY��xYw)N)rr)r���first�second�thirdrUrrrr�r�r�)rWrXrKrZrgrDr��assertIsNot�rrAr@rlrQs     r�test_tuple_memberszTestPlistlib.test_tuple_members�s������
���C����#��&��~�~�b�c�2���n�n�T�*��� � ����V� �!�f���V�'��
�(�-�-�-��$�$�S��\�3�x�=�A�'�&��&�&�s�A4B!�!B*	c	�@�ddgddgddgd�}tD]}}|j|��5tj||��}tj|�}|j|ddgddgddgd��|j
|d|d�ddd��y#1swY��xYw)	Nrrrr�r�rUr�r��rWrXrKrZrgrDr�r�s     r�test_list_memberszTestPlistlib.test_list_members�s�����V��!�f���V�
���C����#��&��~�~�b�c�2���n�n�T�*��� � ����V� �!�f���V�'��
� � ��W��s�8�}�=�'�&��&�&���A!B�B	c	�@�ddiddiddid�}tD]}}|j|��5tj||��}tj|�}|j|ddiddiddid��|j
|d|d�ddd��y#1swY��xYw)	Nr rr!rr�rUr�r�r�r�s     r�test_dict_memberszTestPlistlib.test_dict_members�s����1�X��A�h��1�Y�
���C����#��&��~�~�b�c�2���n�n�T�*��� � ��!�1�X�"�A�h�!�1�Y�'��
� � ��W��s�8�}�=�'�&��&�&�r�c���td�D]�}t|�}d|z}|dk\s|dvrPtj|tj��}|dk7ri|jtj|�|�nC|jt�5tj|tj��ddd�tj|tj����y#1swY�1xYw)N�zstring containing %s� z
	rU�
)
r��chrrKrZ�FMT_XMLrDrgrNr^r�)r�ir"�
testStringrls     r�test_controlcharactersz#TestPlistlib.test_controlcharacters�s����s��A��A��A�/�!�3�J��B�w�!�x�-��~�~�j�h�6F�6F�G����9��$�$�X�^�^�D�%9�:�F��&�&�z�2��N�N�:�8�3C�3C�D�3��N�N�:�8�+>�+>�?��3�2�s�
&C#�#C,	c���ddi}tD]Y}|j|��5tj||��}|j	tj
|�|�ddd��[y#1swY�fxYw)N�pythonu🐍rU)rWrXrKrZrDrg)rrAr@rls    r�test_non_bmp_charactersz$TestPlistlib.test_non_bmp_characters�s\����
%���C����#��&��~�~�b�c�2��� � �����!5�r�:�'�&��&�&�s�=A(�(A1	c�l�tD]�}|j|��5|jt�5t	j
d|��ddd�|jt�5t	j
d|��ddd�ddd���y#1swY�IxYw#1swY� xYw#1swY��xYw)NrUu�u�)rWrXrN�UnicodeEncodeErrorrKrZ)rr@s  r�test_lone_surrogatesz!TestPlistlib.test_lone_surrogates�s}���C����#��&��&�&�'9�:��N�N�8��5�;��&�&�'9�:��N�N�8��5�;�'�&��:�:��:�:��'�&�s:�B*�B�
B*�'B�?B*�B�B*�B'�#B*�*B3	c�d�tD]�}|j|��5d}gd�}tjtj||���}tjtj||���}|j||�|j||�ddd���y#1swY��xYw)NrU�abc)rrrr�)rWrXrKrgrZrD)rr@�test1�test2�result1�result2s      r�test_nondictrootzTestPlistlib.test_nondictroot�s����C����#��&���(��"�.�.�����3�)G�H��"�.�.�����3�)G�H��� � ���0�� � ���0�
'�&��&�&�s�A?B&�&B/	c�~�dD]8}|jttjd|zj	���:y)N)z<key>key inside an array</key>z-<key>key inside an array2</key><real>3</real>z&<true/><key>key inside an array3</key>z <plist><array>%s</array></plist>�rNr^rKrg�encode�rr�s  r�test_invalidarrayzTestPlistlib.test_invalidarray�s8��<�A�
���j�(�.�.�A�!�C�K�K�M�
O�<rc���dD]n}|jttjd|zj	��|jttjd|zj	���py)N)z0<key><true/>k</key><string>compound key</string>z<key>single key</key>z<string>missing key</string>ze<key>k1</key><string>v1</string><real>5.3</real><key>k1</key><key>k2</key><string>double key</string>z<plist><dict>%s</dict></plist>z-<plist><array><dict>%s</dict></array></plist>r�r�s  r�test_invaliddictzTestPlistlib.test_invaliddict�sb��K�A�

���j�(�.�.�?��A�I�I�K�
M����j�(�.�.�N�q�P�X�X�Z�
\�Krc�N�|jttjd�y)Ns-<plist><integer>not integer</integer></plist>�rNr^rKrgrs r�test_invalidintegerz TestPlistlib.test_invalidintegers�����*�h�n�n�J�	Lrc�N�|jttjd�y)Ns*<plist><integer>not real</integer></plist>r�rs r�test_invalidrealzTestPlistlib.test_invalidreals�����*�h�n�n�G�	Irc��d}tj|�}|j|d�d}tj|�}|j|d�d}tj|�}|j|d�y)Ns%<plist><integer>456</integer></plist>i�s%<plist><integer>0xa</integer></plist>r+s&<plist><integer>0123</integer></plist>�{)rKrgrD)rrA�values   r�test_integer_notationsz#TestPlistlib.test_integer_notationssk��
5�����r�"�������$�
5�����r�"�������#�
6�����r�"�������$rc��ttj}ddtjfddtj
fddtjffD]�\}}}|jtj��}|j|��5|jd|�}||jd�j|�z}tj|�}|jt|�t|��ddd���y#1swY��xYw)	Nsutf-8zutf-8sutf-16z	utf-16-lez	utf-16-berU)�encodingsUTF-8)r�rKr��codecs�BOM_UTF8�BOM_UTF16_LE�BOM_UTF16_BErBrX�replace�decoder�rgrDr=)r�base�xml_encodingr�bomrArlrQs        r�test_xml_encodingszTestPlistlib.test_xml_encodingss�����(�(�)���w����8���V�-@�-@�A���V�-@�-@�A�,�'�L�(�C����(�"2�"2��3�B����x��0��|�|�H�l�;���T�[�[��1�8�8��B�B���n�n�T�*��� � ��b��4��9�5�	1�0�,�1�0�s
�	A/D�D	c��|jt�5tjid��ddd�y#1swYyxYw)N�blahrU)rNr^rKrZrs r�test_dump_invalid_formatz%TestPlistlib.test_dump_invalid_format0s*��
�
�
�z�
*��N�N�2�6�*�+�
*�
*�s	�7�Ac��|jtj�5tjd�ddd�y#1swYyxYw)Ns!these are not plist file contents)rNrK�InvalidFileExceptionrgrs r�test_load_invalid_filez#TestPlistlib.test_load_invalid_file4s/��
�
�
�x�<�<�
=��N�N�?�@�>�
=�
=�s	�?�Ac���td�}d|_|jt�5t	j
|tj��ddd�y#1swYyxYw)Nr���rU)rrlrNr^rKrZr�)r�neg_uids  r�test_modified_uid_negativez'TestPlistlib.test_modified_uid_negative8s@���a�&�����
�
�
�z�
*��N�N�7��(;�(;�<�+�
*�
*���&A�A c���td�}d|_|jt�5t	j
|tj��ddd�y#1swYyxYw)Nrr]rU)rrlrNrjrKrZr�)r�huge_uids  r�test_modified_uid_hugez#TestPlistlib.test_modified_uid_huge>s@���q�6����
�
�
�
�}�
-��N�N�8��)<�)<�=�.�
-�
-�rc��|jtjd�5tjttj
��ddd�y#1swYyxYw)Nz)XML entity declarations are not supportedrU)�assertRaisesRegexrKrrg�XML_PLIST_WITH_ENTITYr�rs r�test_xml_plist_with_entity_declz,TestPlistlib.test_xml_plist_with_entity_declDsD��
�
#�
#�H�$A�$A�$O�Q��N�N�0�h�6F�6F�G�Q�Q�Q�s�*A�Ar)0�__name__�
__module__�__qualname__rrBrErRr[r_rnrrrtrzr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrrr�rrr
r
�s�����6<�
E�J��3�$	2�&�E�E�E�h�&�/�
5�1�4�[�8�J�
J�	6�L�*L�$L�:�*B�&>�$>�$@�;�6�1�O�	\�L�I�%�6�&+�A�=�>�Hrr
c�`�eZdZeddd�d��Zd�Zd�Zd�Zd�Zd�Z	d	�Z
d
�Zd�Zd�Z
d
�Zy)�TestBinaryPlistlibr��offset_size�ref_sizec��dg}d}g}|D]B}|j|j|d��|j|�|t|�z
}�Dtjd||t|�d|�}|j|�|j|�t
jdj|�tj��S)N�bplist00��bigz>6xBBQQQrrrU)
�append�to_bytes�len�struct�pack�extendrKrg�joinr�)r&r'�objectsrl�offset�offsets�x�tails        rrzTestBinaryPlistlib.decodeLs����}�������A��N�N�6�?�?�;��>�?��K�K��N��c�!�f��F���{�{�:�{�H��w�<��F�4�����G�����D���~�~�c�h�h�t�n�(�2E�2E�F�Frc�V�d}|jtj|�ddi�y)Ns<bplist00�QaQbr r!)rDrKrgrys  r�test_nonstandard_refs_sizez-TestBinaryPlistlib.test_nonstandard_refs_size[s(��4��	
�������-��S�z�:rc�`�ddddddddtjdd	d
d	dd�td�dd
gddd
if
D]k}|j|��5tj|gdztj
��}|j
t|�dt|��ddd��my#1swY�xxYw)NFT�90�������^@�abcdeu
абвгд�abcder*r+r,r-r�Y�rr?�12�r6i�rUiL)	r>rprXrKrZr��
assertLessr.r�)rr6rls   r�test_dump_duplicatesz'TestBinaryPlistlib.test_dump_duplicatesgs�����t�U�F�G�\�8��#�#�D�"�b�"�b�"�=��H�%��C�y�)�d�C�[�J�A������"��~�~�q�c�$�h�H�4G�4G�H������D�	�4��d��<�#�"�J�#�"�s
�
AB$�$B-	c���dddddddtjddd	dd
d
�td�ddgd
ddifD]�}|j|��5tj|gdztj
��}tj|�\}}t|t�rt|�}|j||�|j||�|j||�ddd���y#1swY��xYw)NFTr;r<r=r>r*r+r,r-rr?r@rArBrrU)r>rprXrKrZr�rg�
isinstance�tupler?rD�assertIs)rr6rlr r!s     r�
test_identityz TestBinaryPlistlib.test_identityps�����t�U�F�G�X��#�#�D�"�b�"�b�"�=��H�%��C�y�)�d�C�[�J�A������"��~�~�q�c�!�e��1D�1D�E���~�~�d�+���1��a��'��Q��A�� � ��A�&�� � ��A�&��
�
�a��#�#�"�J�#�"�s
�	BC'�'C0	c�:�g}|j|�tjtj|tj���}|j|d|�gf}|dj|�tjtj|tj���}|j|dd|�i}||d<tjtj|tj���}|j|d|�y)NrUrr6)r,rKrgrZr�rH)rr r!s   r�test_cycleszTestBinaryPlistlib.test_cycles}s�����	������N�N�8�>�>�!��1D�1D�E�F���
�
�a��d�A��
�E��	�!����A���N�N�8�>�>�!��1D�1D�E�F���
�
�a��d�1�g�q�!�����#���N�N�8�>�>�!��1D�1D�E�F���
�
�a��f�a� rc	��tjrddgngd�}|D]�}t|�D�cgc]}d|dzjdd�z��}}	|jg|�d��ddd	��}t|�D]8}|j|t�|jt|�d�|d
}�:|j|d���ycc}w#t$r*|j|tj�dz�Y��wxYw)
N�2順)rMiXrN��rr�r+sTseedr%r�seedr)
r�is_wasir�r-rrhr?rDr.�RecursionError�
assertGreater�sys�getrecursionlimit)r�tests�Nr��chunks�results      r�test_deep_nestingz$TestBinaryPlistlib.test_deep_nesting�s���!(����W�
�6H���A�DI�!�H�M�H�q�g��Q�� 0� 0��E� :�:�H�F�M�	
1�$����U�f�U�k�U�q�ST�U���q��A��)�)�&�$�7��$�$�S��[�!�4�#�A�Y�F�"�� � ���0���M��"�
B��"�"�1�c�&;�&;�&=�q�&@�A�
B�s�C�
C�0C8�7C8c	�T�dD]�}|j|��5tjddddd�tj|��z}tj|tj
��}|j
tj|�|�ddd���y#1swY��xYw)N)l����l)�tsi�rr)�secondsrU)rXr>�	timedeltarKrZr�rDrg)rr\�drls    r�test_large_timestampz'TestBinaryPlistlib.test_large_timestamp�s���!�B������$��&�&�t�Q��1�a�8��'�'��3�4���~�~�a�X�-@�-@�A��� � �����!5�q�9�	%�$�"�$�$�s�A;B�B'	c��|j|jd�d�|j|jd�d�|j|jd�d�|j|jd�d�y)N��F�	T�r)rHrrDrs r�test_load_singletonsz'TestBinaryPlistlib.test_load_singletons�s`���
�
�d�k�k�'�*�D�1��
�
�d�k�k�'�*�E�2��
�
�d�k�k�'�*�D�1�������W�-�s�3rc��|j|jd�d�|j|jd�d�|j|jd�d�|j|jd�d�|j|jd	�d
�|j|jd�d�y)
Nsrs��s��i�s�ܺ�l�:�}s	#Eg����l�MW�	s	�ܺ�vT2l�����MW�	)rDrrs r�
test_load_intz TestBinaryPlistlib.test_load_int�s���������[�1�1�5�������[�1�4�8�������_�5�v�>�������%<�=�z�J�������%L�M�+�	-�������%L�M�+�	-rc����gtdd��tdd��d�d�tdd��td	d
��}dD]%�|j�fd�td
�D���'|D]f}|jd|d���5|jtj
�5|j
t|g�dz�ddd�ddd��hy#1swY�xYw#1swY�xYw)Nrr*r+�r�r-�$�3�4�@)�p�������c3�(�K�|]	}�|z���y�wrr")�.0�jr�s  �r�	<genexpr>z6TestBinaryPlistlib.test_unsupported.<locals>.<genexpr>�s�����8�i��q�1�u�i�s��ztoken �02xs)r�r1rXrNrKrrrq)r�unsupported�tokenr�s   @r�test_unsupportedz#TestBinaryPlistlib.test_unsupported�s����K��a���K�e�B��m�K��K�!�K�$)�$��$5�K�8=�d�D�8I�K��5�A����8�e�B�i�8�8�6� �E�����u�S�k�2�3��&�&�x�'D�'D�E��K�K��u�g��� ;�<�F�4�3�!�E�E��4�3�s$�< C�C�;C�C�C�C#	c�$�tD]o\}}|j|�5|jtj�5tj
d|ztj��ddd�ddd��qy#1swY�xYw#1swY��xYw)Nr)rU)�INVALID_BINARY_PLISTSrXrNrKrrgr�)r�namerls   r�test_invalid_binaryz&TestBinaryPlistlib.test_invalid_binary�sg��/�J�D�$����d�#��&�&�x�'D�'D�E��N�N�;��#5�8�;N�;N�O�F�$�#�0�E�E��$�#�s"� B�)A:�'B�:B�?B�B	N)rr r!�staticmethodrr9rDrIrKrZr`rfrir~r�r"rrr$r$JsN���%&��G��G�
;�=�$�!�"
1�:�4�-�=�Prr$c��eZdZd�Zy)�TestKeyedArchivec��dddtd�dd�dgd�d	d
gd�gdd
td�id�}|jtjtd�|�y)NrNz$nullrrzKeyArchive UID Test)�pytypez$classz	NS.string�OC_BuiltinPythonUnicode)r��OC_PythonUnicode�NSString�NSObject�OC_PythonStringr�)z
$classnamez$classesz$classhints�NSKeyedArchiver�root)z$versionz$objectsz	$archiverz$topr)rrDrKrgr�rys  r�test_keyed_archive_dataz(TestKeyedArchive.test_keyed_archive_data�sv�����!�!�f�!6��#<�!�*�:�$��
�&+���A���-
��4	
��������(A�B�D�IrN)rr r!r�r"rrr�r��s��Jrr�c��eZdZd�Zy)�MiscTestCasec�D�ddh}tj|t|��y)N�PlistFormat�PLISTHEADER)�not_exported)r�check__all__rK)rr�s  r�test__all__zMiscTestCase.test__all__�s��%�}�5�����T�8�,�GrN)rr r!r�r"rrr�r��s��Hrr��darwinzplutil utility is for Mac osc��eZdZdZddddd�d�Zddddd�d�Zdd	d
�Zedd��Zedd
��Z	d�Z
d�Zd�Zd�Z
d�Zd�Zd�Zd�Zy)�
TestPlutilzplutil_test.plist�Hr�drz)r r!)�fname�lname�marks��S)�HexType�IntTypeNc��t|jd�5}tj|j|tj
��ddd�y#1swYyxYw)NrGrU)rJ�	file_namerKrL�
propertiesr�)�cls�fs  r�
setUpClasszTestPlutil.setUpClass�s:���#�-�-��
%���M�M�#�.�.�!��1D�1D�E�&�
%�
%���1A�Ac�B�tj|j�yr)r
�remover�)r�s r�
tearDownClasszTestPlutil.tearDownClasss��
�	�	�#�-�-� rc�`�tjdd|jgdd��jS)N�plutilz-lintT)�capture_outputr)�
subprocess�runr��stdoutrs r�get_lint_statuszTestPlutil.get_lint_statuss(���~�~�x��$�.�.�A�RV�]a�b�i�i�irc�J�tjddd|jg�y)z1Convert binary file to json using plutil
        r��-convert�jsonN�r�r�r�rs r�convert_to_jsonzTestPlutil.convert_to_jsons��	����*�f�d�n�n�E�Frc�J�tjddd|jg�y)z,Convert file to binary using plutil
        r�r��binary1Nr�rs r�convert_to_binzTestPlutil.convert_to_bins��	����*�i����H�Irc��t|jd�5}tj|j|tj
��ddd�y#1swYyxYw)z6Write Hex properties to file using writePlist
        rGrUN)rJr�rKrLrAr��rr�s  r�write_plzTestPlutil.write_pls:���$�.�.�$�
'�1��M�M�$�'�'�1�(�*=�*=�>�(�
'�
'�r�c�^�|j|j�d�|j��y)Nz: OK
)rDr�r�rs r�test_lint_statuszTestPlutil.test_lint_statuss'�����D�N�N�+�6�2�D�4H�4H�4J�Krc��|j�t|j�5}tj|j��}|j
||j�ddd�y#1swYyxYwr)r�rJr�r�rg�readrD�exptected_properties)rr��ffs   r�
check_contentzTestPlutil.check_contentsR������
�$�.�.�
!�Q����A�F�F�H�%�B����R��!:�!:�;�"�
!�
!�s�AA/�/A8c���|j�t|jd�5}|jt	j
|�|j�ddd�y#1swYyxYw)NrH)r�rJr�rDrKrMr�r�s  r�check_plistlib_parsezTestPlutil.check_plistlib_parse&sI������
�$�.�.�$�
'�1����X�]�]�1�-�t�/H�/H�I�(�
'�
'�s�0A � A)c�d�|j�|j�t|jd�5}t	j
|j
��}|j|jd�d�|j|jd�d�ddd�y#1swYyxYw)N�rr�r�r�r�)	r�r�rJr�r�rgr�rD�get)rr��ps   r�test_octal_and_hexzTestPlutil.test_octal_and_hex,sy���
�
������
�$�.�.�#�
&�!��
�
�1�6�6�8�$�A����Q�U�U�9�-�x�8����Q�U�U�9�-�r�2�'�
&�
&�s�A&B&�&B/)�returnN)rr r!r�r�r�rA�classmethodr�r�r�r�r�r�r�r�r�r�r"rrr�r��s���#�I����D�)�
�J�����#���#��

�B�
�F��F�
�!��!�j�G�
J�
?�L�<�J�3rr��__main__)&r�r�r�r/�unittestrKr
rTr�r>rr��binasciir�rvr�test.supportr�iorrr�r�rW�
a2b_base64r�rr��TestCaser
r$r�r��
skipUnless�platformr�r�mainr"rr�<module>r�sz����
�
���	�
���
�����"���
�
�
�x�2�2�3��

���)�h�)�)�3+8�39�h
���,��,�,�.@�A�*�(�X�(�(�
*�
�UU
��n��U��pqH�8�$�$�qH�h
zP��*�*�zP�zJ�x�(�(�J�@H�8�$�$�H�
����S�\�\�X�-�/M�N�E3��"�"�E3�O�E3�N�z���H�M�M�O�r

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