403Webshell
Server IP : 121.121.20.254  /  Your IP : 216.73.217.51
Web Server : Microsoft-IIS/10.0
System : Windows NT WEB-SERVER 10.0 build 20348 (Windows Server 2022) AMD64
User : IUSR ( 0)
PHP Version : 8.3.28
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  C:/Python313/Lib/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : C:/Python313/Lib/test/__pycache__/pickletester.cpython-313.pyc
�

��iq���@�SSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSK	r	SSK
r
SSKrSSKrSSK
r
SSKrSSKrSSKrSSKrSSKJr SSKJr SSKrSSKJr SSKJr SSKJrJrJrJrJ r  SSK!J"r" SSK#J$r$ SS	KJ%r% SS
K&J'r' SSK(J)r) SSKJ*r* SS
K+7 SSKJ,r, \)"5 SSK-r.SSS5 \R^"\R`S:S5r1\2"\RfS-5r4Sr5Sr6Sr7Sr8"SS\Rr5r:"SS\;5r<"SS5r="SS\>5r?Sr@\b
"SS 5rAS!rBS"rCS#rDS$rES%rFS&rGS'rHS(rIS)rJS*rKS+rLS,rMS-rNS.rO/\PP\QP\RP\SP\TP\UP\VP\WP\XP\YP\ZP\[P\\P\]P\P\^P\_P\`P\aP\bP\cP\dP\eP\fP\gP\hP\iP\jP\kP\lP\mP\nP\oP\pP\qP\rP\sP\tP\uP\vP\wP\xP\yP\zP7r{S/r|S0r}S1r~"S2S35r"S4S55r�"S6S7\'5r�"S8S95r�"S:S;\Y5r�"S<S=5r�\�"5r�"S>S?\�5r�"S@SA5r�"SBSC5r�"SDSE5r�"SFSG5r�"SHSI5r�"SJSK5r�SLr�"SMSN\;5r�"SOSP\;5r�SQr�"SRSS5r�"STSU5r�"SVSW5r�\�SX:Xa�SSYK	J�r� \~"5r�\2"\RfS-5H�r�\GR0"\�\�5r�\�"SZGR7\�55 \2"S\�"\�5S[5H)r�\�"\�\�\�S[-5r�\�"S\GR7\�55 M+ \�"S]5 \�"5 \�"S^GR7\�55 \�"S_GR7\�55 \�"\�5 \�"S`5 \�"5 M� gg!\a SrGN!f=f!,(df   GN�=f!\a Sr.GN�f=f)a�N)�dedent)�SimpleCookie)�support)�	os_helper)�run_with_locales�
no_tracing�_2G�_4G�
bigmemtest)�forget)�TESTFN)�threading_helper)�ExtraAssertions)�save_restore_warnings_filters)�picklecommon)�*)�bytes_typeslz(test is only meaningful on 32-bit builds��2c��[R"U5H(un nURURS5:XdM( g g)N�latin-1TF��pickletools�genops�code�decode)r�pickle�op�dummys    �&C:\Python313\\Lib\test\pickletester.py�opcode_in_pickler!As;��'�.�.�v�6���E�5�
�7�7�d�k�k�)�,�,��7��c��Sn[R"U5H-un nURURS5:XdM(US-
nM/ U$)Nrrrr)rr�nrrs     r �count_opcoder%HsH��	�A�'�.�.�v�6���E�5�
�7�7�d�k�k�)�,�,�
��F�A�7�
�Hr"c��U$�N���xs r �identityr+Ps���Hr"c�,�\rSrSrSrSrSrSrSrg)�UnseekableIO�Tc��[er')�NotImplementedError��self�argss  r �peek�UnseekableIO.peekUs��!�!r"c��g)NFr(�r2s r �seekable�UnseekableIO.seekableXs��r"c�"�[Rer'��io�UnsupportedOperationr1s  r �seek�UnseekableIO.seek[����%�%�%r"c�"�[Rer'r;r7s r �tell�UnseekableIO.tell^r@r"r(N)	�__name__�
__module__�__qualname__�__firstlineno__r4r8r>rB�__static_attributes__r(r"r r-r-Ts��"��&�&r"r-c��\rSrSrSrSrSrg)�	MinimalIO�bz5
A file-like object that doesn't support readinto().
c��[R"U6UlURRUlURRUlURR
UlURRUlgr')r<�BytesIO�_bio�getvalue�read�readline�writer1s  r �__init__�MinimalIO.__init__fsR���J�J��%��	��	�	�*�*��
��I�I�N�N��	��	�	�*�*��
��Y�Y�_�_��
r")rNrOrPrQrRN)rDrErFrG�__doc__rSrHr(r"r rJrJbs���%r"rJc� �\rSrSrSrSrSrg)�ExtensionSaver�xc���XlU[R;aK[RUUl[R"URSURSU5 gSUlg�Nrr)r�copyreg�_inverted_registry�pair�remove_extension)r2rs  r rS�ExtensionSaver.__init__{sP���	��7�-�-�-��2�2�4�8�D�I��$�$�T�Y�Y�q�\�4�9�9�Q�<��F��D�Ir"c��URn[RRU5nUb[R"USUSU5 UR
nUb[R"USUSU5 ggrZ)rr[r\�getr^r]�
add_extension)r2r�curpairr]s    r �restore�ExtensionSaver.restore�so���y�y���,�,�0�0��6�����$�$�W�Q�Z����T�B��y�y�����!�!�$�q�'�4��7�D�9�r")rr]N)rDrErFrGrSrdrHr(r"r rWrWxs���:r"rWc� �\rSrSrSrSrSrg)�pickling_metaclass�c�p�[U5[U5:H=(a URUR:H$r')�type�reduce_args�r2�others  r �__eq__�pickling_metaclass.__eq__�s0���T�
�d�5�k�)�6�� � �E�$5�$5�5�	7r"c�&�[UR4$r')�create_dynamic_classrkr7s r �
__reduce__�pickling_metaclass.__reduce__�s��$�d�&6�&6�7�7r"r(N)rDrErFrGrnrrrHr(r"r rgrg�s��7�8r"rgc�>�[X[55nX4UlU$r')rg�dictrk)�name�bases�results   r rqrq�s��
��T�V�
4�F���F���Mr"c�|�\rSrSrSrSrSr\S5r\S5r	\S5r
SrS	rS
r
Sr\S5rS
rg)�PicklableNDArray�Fc�:�[R"U0UD6Ulgr')�_testbuffer�ndarray�array�r2r3�kwargss   r rS�PicklableNDArray.__init__�s��$�,�,�d�=�f�=�D�Jr"c�f�[U5nURU5nURUUlU$r')rj�__new__r)r2�idx�cls�news    r �__getitem__�PicklableNDArray.__getitem__�s-���t�*�C��+�+�c�"�C��
�
�3��C�I��Jr"c�.�URR$r')r�readonlyr7s r r��PicklableNDArray.readonly�s���:�:�&�&�&r"c�.�URR$r')r�c_contiguousr7s r r��PicklableNDArray.c_contiguous�����:�:�*�*�*r"c�.�URR$r')r�f_contiguousr7s r r��PicklableNDArray.f_contiguous�r�r"c�B�[U[5(d[$URRURR:H=(a� URR
URR
:H=(a� URRURR:H=(ai URRURR:H=(a5 URR5URR5:H$r')	�
isinstancerz�NotImplementedr�format�shape�stridesr��tobytesrls  r rn�PicklableNDArray.__eq__�s����e�%5�6�6�%�%��K�K�&�&�$�*�*�*;�*;�;�B��K�K�%�%����)9�)9�9�B��K�K�'�'�4�:�:�+=�+=�=�B��K�K�(�(�D�J�J�,?�,?�?�B��K�K�'�'�)�T�Z�Z�-?�-?�-A�A�	
Cr"c�B�[U[5(d[$X:X+$r')r�rzr�rls  r �__ne__�PicklableNDArray.__ne__�s���e�%5�6�6�%�%��&�&r"c�p�SR[U5RURRS9$)NzL{name}(shape={array.shape},strides={array.strides}, bytes={array.tobytes()}))rvr)r�rjrDrr�r7s r �__repr__�PicklableNDArray.__repr__�s6��/�06���d��,�,�D�J�J�4D�4D�17�1F�
Fr"c�6�URR(d[S5eURRURRURR
UR(aSO[RS.n[R"UR5nUS:�a[U5RX244$UR5n[U5RUR5U44sSSS5 $!,(df   g=f)Nz>Reconstructing a non-contiguous ndarray does not seem possibler)r�r�r��flags�)r�
contiguousr0r�r�r�r�r}�ND_WRITABLEr�PickleBufferrj�_reconstruct�rawr�)r2�protocol�ndarray_kwargs�pb�ms     r �
__reduce_ex__�PicklableNDArray.__reduce_ex__�s����:�:�(�(�)�+K�L�L�'+�z�z�'7�'7�)-���);�);�(,�
�
�(9�(9�-1�]�]��-8�-D�-D�	G�N�
�$�$�T�Z�Z�0�B��1�}��T�
�/�/��,�.�.��V�V�X�� ��J�3�3��Y�Y�[�.�9�;��X�X�s�'D
�

Dc��[U5n[UR55nSSS5 U"W40UD6$!,(df   N=fr')�
memoryview�listr�)r��objr�r��itemss     r r��PicklableNDArray._reconstruct�s<���C��A��Q�Y�Y�[�)��!��u�'��'�'�	!��s	�7�
A)rN)rDrErFrG�zero_copy_reconstructrSr��propertyr�r�r�rnr�r�r��classmethodr�rHr(r"r rzrz�sz��!&��	>�	�
�	'�
�	'�
�	+�
�	+�
�	+�
�	+�	C�	'�
	F�	;�&
�	(�
�	(r"rzs;(lp0
L0L
aL1L
aF2.0
ac__builtin__
complex
p1
(F3.0
F0.0
tp2
Rp3
aL1L
aL-1L
aL255L
aL-255L
aL-256L
aL65535L
aL-65535L
aL-65536L
aL2147483647L
aL-2147483647L
aL-2147483648L
a(Vabc
p4
g4
ccopy_reg
_reconstructor
p5
(c__main__
C
p6
c__builtin__
object
p7
Ntp8
Rp9
(dp10
Vfoo
p11
L1L
sVbar
p12
L2L
sbg9
tp13
ag13
aL5L
a.an    0: (    MARK
    1: l        LIST       (MARK at 0)
    2: p    PUT        0
    5: L    LONG       0
    9: a    APPEND
   10: L    LONG       1
   14: a    APPEND
   15: F    FLOAT      2.0
   20: a    APPEND
   21: c    GLOBAL     '__builtin__ complex'
   42: p    PUT        1
   45: (    MARK
   46: F        FLOAT      3.0
   51: F        FLOAT      0.0
   56: t        TUPLE      (MARK at 45)
   57: p    PUT        2
   60: R    REDUCE
   61: p    PUT        3
   64: a    APPEND
   65: L    LONG       1
   69: a    APPEND
   70: L    LONG       -1
   75: a    APPEND
   76: L    LONG       255
   82: a    APPEND
   83: L    LONG       -255
   90: a    APPEND
   91: L    LONG       -256
   98: a    APPEND
   99: L    LONG       65535
  107: a    APPEND
  108: L    LONG       -65535
  117: a    APPEND
  118: L    LONG       -65536
  127: a    APPEND
  128: L    LONG       2147483647
  141: a    APPEND
  142: L    LONG       -2147483647
  156: a    APPEND
  157: L    LONG       -2147483648
  171: a    APPEND
  172: (    MARK
  173: V        UNICODE    'abc'
  178: p        PUT        4
  181: g        GET        4
  184: c        GLOBAL     'copy_reg _reconstructor'
  209: p        PUT        5
  212: (        MARK
  213: c            GLOBAL     '__main__ C'
  225: p            PUT        6
  228: c            GLOBAL     '__builtin__ object'
  248: p            PUT        7
  251: N            NONE
  252: t            TUPLE      (MARK at 212)
  253: p        PUT        8
  256: R        REDUCE
  257: p        PUT        9
  260: (        MARK
  261: d            DICT       (MARK at 260)
  262: p        PUT        10
  266: V        UNICODE    'foo'
  271: p        PUT        11
  275: L        LONG       1
  279: s        SETITEM
  280: V        UNICODE    'bar'
  285: p        PUT        12
  289: L        LONG       2
  293: s        SETITEM
  294: b        BUILD
  295: g        GET        9
  298: t        TUPLE      (MARK at 172)
  299: p    PUT        13
  303: a    APPEND
  304: g    GET        13
  308: a    APPEND
  309: L    LONG       5
  313: a    APPEND
  314: .    STOP
highest protocol among opcodes = 0
s�]q(KKG@c__builtin__
complex
q(G@GtqRqKJ����K�J���J���M��J��J��J���J�J�(Xabcqhccopy_reg
_reconstructor
q(c__main__
C
qc__builtin__
object
qNtqRq	}q
(XfooqKXbarqKubh	tq
h
Ke.a    0: ]    EMPTY_LIST
    1: q    BINPUT     0
    3: (    MARK
    4: K        BININT1    0
    6: K        BININT1    1
    8: G        BINFLOAT   2.0
   17: c        GLOBAL     '__builtin__ complex'
   38: q        BINPUT     1
   40: (        MARK
   41: G            BINFLOAT   3.0
   50: G            BINFLOAT   0.0
   59: t            TUPLE      (MARK at 40)
   60: q        BINPUT     2
   62: R        REDUCE
   63: q        BINPUT     3
   65: K        BININT1    1
   67: J        BININT     -1
   72: K        BININT1    255
   74: J        BININT     -255
   79: J        BININT     -256
   84: M        BININT2    65535
   87: J        BININT     -65535
   92: J        BININT     -65536
   97: J        BININT     2147483647
  102: J        BININT     -2147483647
  107: J        BININT     -2147483648
  112: (        MARK
  113: X            BINUNICODE 'abc'
  121: q            BINPUT     4
  123: h            BINGET     4
  125: c            GLOBAL     'copy_reg _reconstructor'
  150: q            BINPUT     5
  152: (            MARK
  153: c                GLOBAL     '__main__ C'
  165: q                BINPUT     6
  167: c                GLOBAL     '__builtin__ object'
  187: q                BINPUT     7
  189: N                NONE
  190: t                TUPLE      (MARK at 152)
  191: q            BINPUT     8
  193: R            REDUCE
  194: q            BINPUT     9
  196: }            EMPTY_DICT
  197: q            BINPUT     10
  199: (            MARK
  200: X                BINUNICODE 'foo'
  208: q                BINPUT     11
  210: K                BININT1    1
  212: X                BINUNICODE 'bar'
  220: q                BINPUT     12
  222: K                BININT1    2
  224: u                SETITEMS   (MARK at 199)
  225: b            BUILD
  226: h            BINGET     9
  228: t            TUPLE      (MARK at 112)
  229: q        BINPUT     13
  231: h        BINGET     13
  233: K        BININT1    5
  235: e        APPENDS    (MARK at 3)
  236: .    STOP
highest protocol among opcodes = 1
s��]q(KKG@c__builtin__
complex
qG@G�qRqKJ����K�J���J���M��J��J��J���J�J�(Xabcqhc__main__
C
q)�q}q(XfooqKXbarq	Kubhtq
h
Ke.u�    0: € PROTO      2
    2: ]    EMPTY_LIST
    3: q    BINPUT     0
    5: (    MARK
    6: K        BININT1    0
    8: K        BININT1    1
   10: G        BINFLOAT   2.0
   19: c        GLOBAL     '__builtin__ complex'
   40: q        BINPUT     1
   42: G        BINFLOAT   3.0
   51: G        BINFLOAT   0.0
   60: †     TUPLE2
   61: q        BINPUT     2
   63: R        REDUCE
   64: q        BINPUT     3
   66: K        BININT1    1
   68: J        BININT     -1
   73: K        BININT1    255
   75: J        BININT     -255
   80: J        BININT     -256
   85: M        BININT2    65535
   88: J        BININT     -65535
   93: J        BININT     -65536
   98: J        BININT     2147483647
  103: J        BININT     -2147483647
  108: J        BININT     -2147483648
  113: (        MARK
  114: X            BINUNICODE 'abc'
  122: q            BINPUT     4
  124: h            BINGET     4
  126: c            GLOBAL     '__main__ C'
  138: q            BINPUT     5
  140: )            EMPTY_TUPLE
  141:          NEWOBJ
  142: q            BINPUT     6
  144: }            EMPTY_DICT
  145: q            BINPUT     7
  147: (            MARK
  148: X                BINUNICODE 'foo'
  156: q                BINPUT     8
  158: K                BININT1    1
  160: X                BINUNICODE 'bar'
  168: q                BINPUT     9
  170: K                BININT1    2
  172: u                SETITEMS   (MARK at 147)
  173: b            BUILD
  174: h            BINGET     6
  176: t            TUPLE      (MARK at 113)
  177: q        BINPUT     10
  179: h        BINGET     10
  181: K        BININT1    5
  183: e        APPENDS    (MARK at 5)
  184: .    STOP
highest protocol among opcodes = 2
s��]q(KKG@cbuiltins
complex
qG@G�qRqKJ����K�J���J���M��J��J��J���J�J�(Xabcqhc__main__
C
q)�q}q(XbarqKXfooq	Kubhtq
h
Ke.u�    0: € PROTO      3
    2: ]    EMPTY_LIST
    3: q    BINPUT     0
    5: (    MARK
    6: K        BININT1    0
    8: K        BININT1    1
   10: G        BINFLOAT   2.0
   19: c        GLOBAL     'builtins complex'
   37: q        BINPUT     1
   39: G        BINFLOAT   3.0
   48: G        BINFLOAT   0.0
   57: †     TUPLE2
   58: q        BINPUT     2
   60: R        REDUCE
   61: q        BINPUT     3
   63: K        BININT1    1
   65: J        BININT     -1
   70: K        BININT1    255
   72: J        BININT     -255
   77: J        BININT     -256
   82: M        BININT2    65535
   85: J        BININT     -65535
   90: J        BININT     -65536
   95: J        BININT     2147483647
  100: J        BININT     -2147483647
  105: J        BININT     -2147483648
  110: (        MARK
  111: X            BINUNICODE 'abc'
  119: q            BINPUT     4
  121: h            BINGET     4
  123: c            GLOBAL     '__main__ C'
  135: q            BINPUT     5
  137: )            EMPTY_TUPLE
  138:          NEWOBJ
  139: q            BINPUT     6
  141: }            EMPTY_DICT
  142: q            BINPUT     7
  144: (            MARK
  145: X                BINUNICODE 'bar'
  153: q                BINPUT     8
  155: K                BININT1    2
  157: X                BINUNICODE 'foo'
  165: q                BINPUT     9
  167: K                BININT1    1
  169: u                SETITEMS   (MARK at 144)
  170: b            BUILD
  171: h            BINGET     6
  173: t            TUPLE      (MARK at 110)
  174: q        BINPUT     10
  176: h        BINGET     10
  178: K        BININT1    5
  180: e        APPENDS    (MARK at 5)
  181: .    STOP
highest protocol among opcodes = 2
s����]�(KKG@�builtins��complex���G@G��R�KJ����K�J���J���M��J��J��J���J�J�(�abc�h�__main__��C���)��}�(�bar�K�foo�Kubh
t�hKe.u�    0: € PROTO      4
    2: • FRAME      168
   11: ]    EMPTY_LIST
   12: ” MEMOIZE
   13: (    MARK
   14: K        BININT1    0
   16: K        BININT1    1
   18: G        BINFLOAT   2.0
   27: Œ     SHORT_BINUNICODE 'builtins'
   37: ”     MEMOIZE
   38: Œ     SHORT_BINUNICODE 'complex'
   47: ”     MEMOIZE
   48: “     STACK_GLOBAL
   49: ”     MEMOIZE
   50: G        BINFLOAT   3.0
   59: G        BINFLOAT   0.0
   68: †     TUPLE2
   69: ”     MEMOIZE
   70: R        REDUCE
   71: ”     MEMOIZE
   72: K        BININT1    1
   74: J        BININT     -1
   79: K        BININT1    255
   81: J        BININT     -255
   86: J        BININT     -256
   91: M        BININT2    65535
   94: J        BININT     -65535
   99: J        BININT     -65536
  104: J        BININT     2147483647
  109: J        BININT     -2147483647
  114: J        BININT     -2147483648
  119: (        MARK
  120: Œ         SHORT_BINUNICODE 'abc'
  125: ”         MEMOIZE
  126: h            BINGET     6
  128: Œ         SHORT_BINUNICODE '__main__'
  138: ”         MEMOIZE
  139: Œ         SHORT_BINUNICODE 'C'
  142: ”         MEMOIZE
  143: “         STACK_GLOBAL
  144: ”         MEMOIZE
  145: )            EMPTY_TUPLE
  146:          NEWOBJ
  147: ”         MEMOIZE
  148: }            EMPTY_DICT
  149: ”         MEMOIZE
  150: (            MARK
  151: Œ             SHORT_BINUNICODE 'bar'
  156: ”             MEMOIZE
  157: K                BININT1    2
  159: Œ             SHORT_BINUNICODE 'foo'
  164: ”             MEMOIZE
  165: K                BININT1    1
  167: u                SETITEMS   (MARK at 150)
  168: b            BUILD
  169: h            BINGET     10
  171: t            TUPLE      (MARK at 119)
  172: ”     MEMOIZE
  173: h        BINGET     14
  175: K        BININT1    5
  177: e        APPENDS    (MARK at 13)
  178: .    STOP
highest protocol among opcodes = 4
s%�c__builtin__
set
q]q(KKe�qRq.s%�c__builtin__
xrange
qKKK�qRq.s��cCookie
SimpleCookie
q)�qUkeyqcCookie
Morsel
q)�q(UcommentqUqUdomainqhUsecureqhUexpiresq	hUmax-ageq
hUversionqhUpathqhUhttponlyq
hu}q(Ucoded_valueqUvalueqhhhhubs}qb.s"�c__builtin__
set
q]qKa�qRq.s�cexceptions
?
q)Rq.sI�cexceptions
UnicodeEncodeError
q(UasciiqXfooqKKUbadqtqRq.c�
�[5nSUlSUl/SQnSnSnSnURSSX"*U*S-
X3*U*S-
XD*U*S-
/5 SSX4nUR	U5 UR	U5 UR	S	5 U$)
Nr�)rrg@y@��������abcr�)�C�foo�bar�extend�append)�cr*�uint1max�uint2max�int4max�ys      r �create_datar��s���	��A�
�A�E�
�A�E��A��H��H��G��H�H�a���	�H�9�Q�;��	�H�9�Q�;���W�H�Q�J�0�1�
��q��A��H�H�Q�K��H�H�Q�K��H�H�Q�K��Hr"c��\rSrSr\"5rS9SjrSrSrSr	Sr
SrS	rS
r
SrSrS
rSrSrSrSrSrSr\S5r\S5rSrSrSrSrSr\S5r\S5r \S5r!Sr"Sr#S r$S!r%S"r&S#r'\S$5r(S%r)S&r*S'r+S(r,S)r-S*r.S+r/S,r0S-r1S.r2\3RhS/5r5S0r6S1r7S2r8S3r9S4r:S5r;S6r<\=R|\=R~"5S755r@S8rAg):�AbstractUnpickleTestsi�Nc	�l�UcSRX5nURXUS9 UR[U5[U5US9 [	US5(aJURURURUS9 URURURUS9 [	US5(a�URURURUS9 URHKnUR[	X5[	X$5US9 UR[XS5[X$S5US9 MM gg)zKUtility method to verify if two objects are copies of each others.
        Nz{!r} is not a copy of {!r})�msg�__dict__�	__slots__)r��assertEqual�assertIsrj�hasattr�assertDictEqualr��assertIsNot�assertListEqualr��getattr)r2r��objcopyr��slots     r �assert_is_copy�$AbstractUnpickleTests.assert_is_copy�s���;�.�5�5�c�C�C�����3��/��
�
�d�3�i��g��C�
�8��3�
�#�#�� � ����w�/?�/?�S� �I����S�\�\�7�+;�+;���E��3��$�$�� � �����0A�0A�s� �K��
�
��� � ��C�&���(>�C�!�I�� � ���D�!9�!(���!=�3�!�H�&�%r"c
�v�URUS9 URU5 URU5 SSS5 SSS5 g![aEn[R
S:�a+[
U<SSURR<SU<35 eSnAff=f!,(df   Ni=f!,(df   g=f)N��datar�32z - z: )	�subTest�assertRaises�loads�
BaseExceptionr�verbose�print�	__class__rD)r2�errorsr��excs    r �check_unpickling_error�,AbstractUnpickleTests.check_unpickling_error�s���
�\�\�t�\�
$�
�
�
�v�
&�
��
�
�4� �'�%�
$��!�
��?�?�Q�&������!7�!7��>�?���	
��'�
&��%�
$�s?�B*�B�A�B*�
B�AB�B�B�
B'	�#B*�*
B8c�b�URURUR[55 gr')r��	_testdatar��DATA0r7s r �test_load_from_data0�*AbstractUnpickleTests.test_load_from_data0�������D�N�N�D�J�J�u�,=�>r"c�b�URURUR[55 gr')r�r�r��DATA1r7s r �test_load_from_data1�*AbstractUnpickleTests.test_load_from_data1r�r"c�b�URURUR[55 gr')r�r�r��DATA2r7s r �test_load_from_data2�*AbstractUnpickleTests.test_load_from_data2r�r"c�b�URURUR[55 gr')r�r�r��DATA3r7s r �test_load_from_data3�*AbstractUnpickleTests.test_load_from_data3r�r"c�b�URURUR[55 gr')r�r�r��DATA4r7s r �test_load_from_data4�*AbstractUnpickleTests.test_load_from_data4
r�r"c���[S4[S4[S44H�upURR	S5nSRSU5nUR
U"U6URU55 SRSU5nUR
U"U6URU55 SRSU5nUR
U"U6URU55 M� g)Nr(r)�asciis(i__main__
X
p0
(dp1
b.�Xs(c__main__
X
qoq}qb.s�(c__main__
X
qoq}qb.)r��D�ErD�encode�replacer�r�)r2�Xr3�xname�pickle0�pickle1�pickle2s       r �test_load_classic_instance�0AbstractUnpickleTests.test_load_classic_instance
s����B��!�V��q�"�g�6�G�A��J�J�%�%�g�.�E�	
�#�%,�G�D�%�$8�
�
����4��$�*�*�W�*=�>�

�.�/6�w�t�U�/C�
�
����4��$�*�*�W�*=�>�
�.�/6�w�t�U�/C�
�
����4��$�*�*�W�*=�>�i7r"c��SnS[U5RS5-S-nURU5nURX5 S[U5RS5-S-nUR	[
U5 g)Nl�����Ir�
.sJUNK
.)�strrr�r�r��
ValueError)r2�maxint64r��gots    r �
test_maxint64�#AbstractUnpickleTests.test_maxint64Fsq�� ���c�(�m�*�*�7�3�3�f�<���j�j�������H�*��c�(�m�*�*�7�3�3�j�@���#�#�J��5r"c��UR[5nURU[SS/55 UR[5nUR[U5[[
S555 UR[U5[[
S555 UR[5nUR[U5[5 UR[UR55S/5 URUSRS5 [H^n[RSURR!S55nURU5nUR#[U5U5 M` UR[RSS	55nUR#[U5[$5 UR[&5nUR#[U5[(5 URUR*S
5 URUR,S5 URUR.S5 URUR0S5 URUR2S5 g)Nrr�rr��key�value�?r�
StandardErrorr��bad)r��DATA_SETr��set�DATA_XRANGErj�ranger��DATA_COOKIEr�keysr�python2_exceptions_without_args�exception_picklerrDrr��	Exception�
DATA_UEERR�UnicodeEncodeError�object�encoding�start�end�reason)r2�loadedr�r�s    r �test_unpickle_from_2x�+AbstractUnpickleTests.test_unpickle_from_2xPs������H�%�������a��V��-����K�(������f��t�E�!�H�~�6�����f��t�E�!�H�~�6����K�(������f��|�4�����f�k�k�m�,�u�g�6�������,�,�g�6�3�C�#�+�+�D�#�,�,�2E�2E�g�2N�O�D��Z�Z��%�F��M�M�$�v�,��,�3����,�4�4�T�;K�L�M���
�
�d�6�l�I�.����J�'���
�
�d�6�l�$6�7��������.�������'�2�������q�)�������Q�'��������.r"c���URURSSS9S5 URURSSS9S5 URURSSS9S5 g)NsS'a\x00\xa0'
.�bytes�r*sa�sUa�.s�Ua�.�r�r�r7s r �test_load_python2_str_as_bytes�4AbstractUnpickleTests.test_load_python2_str_as_bytesns~��������$8�-4�$�6�7C�	E�	
������$6�-4�$�6�7C�	E�	
������$>�-4�$�6�7C�	Er"c���URURSSS9S5 URURSSS9S5 URURSSS9S5 g)Ns	V\u03c0
.r2r3uπsXπ.s
�Xπ.r4r7s r � test_load_python2_unicode_as_str�6AbstractUnpickleTests.test_load_python2_unicode_as_strysz��������N�-4�$�6�7;�	=�	
������$A�-4�$�6�7;�	=�	
������$I�-4�$�6�7;�	=r"c	��URUR[R[R
"SS5-S-[R-SS9S5 g)N�<Ii,s,xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxr2r3)r�r�r�	BINSTRING�struct�pack�STOPr7s r �#test_load_long_python2_str_as_bytes�9AbstractUnpickleTests.test_load_long_python2_str_as_bytes�s[��������F�$4�$4�$*�K�K��c�$:�%;�$.�%/�17���%=�.5�$�6�8B�	Cr"c�L�URURS55 URURS5S5 URURS5S5 URURS5S5 URURS5S5 g)NsN.s�.Ts�.FsI01
.sI00
.)�assertIsNoner�r�r7s r �test_constants�$AbstractUnpickleTests.test_constants�su�����$�*�*�U�+�,��
�
�d�j�j��*�D�1��
�
�d�j�j��*�E�2��
�
�d�j�j��+�T�2��
�
�d�j�j��+�U�3r"c�H�URSSS9nURUS5 g)Ns�Uq.zkoi8-rr3�)r�r�)r2�emptys  r �test_empty_bytestring�+AbstractUnpickleTests.test_empty_bytestring�s%���
�
�1�H�
�E�������#r"c�J�SnURURU5S5 g)Ns	�C€.�€r4�r2�dumpeds  r �test_short_binbytes�)AbstractUnpickleTests.test_short_binbytes�s!��2��������F�+�-@�Ar"c�J�SnURURU5S5 g)Ns�B€.rLr4rMs  r �
test_binbytes�#AbstractUnpickleTests.test_binbytes�s!��>��������F�+�-@�Ar"c�T�SnUR[R[4U5 g)Ns
�B����xyzq.�r�r�UnpicklingError�
OverflowErrorrMs  r �test_negative_32b_binbytes�0AbstractUnpickleTests.test_negative_32b_binbytes��'��7���#�#�V�%;�%;�]�$K�$*�	,r"c�T�SnUR[R[4U5 g)Ns
�X����xyzq.rUrMs  r �test_negative_32b_binunicode�2AbstractUnpickleTests.test_negative_32b_binunicode�rZr"c�J�SnURURU5S5 g)Ns	��€.�€r4rMs  r �test_short_binunicode�+AbstractUnpickleTests.test_short_binunicode�s ��5��������F�+�\�:r"c�
�UR[RS5 UR[RS5 UR[RS5 URSS/UR	S55 g)Nsg0
p0sjens:shens:)�ds((Kdtp0
hl.)))r�rrVr�r�r7s r �
test_misc_get�#AbstractUnpickleTests.test_misc_get�sf���#�#�F�$:�$:�I�F��#�#�F�$:�$:�H�E��#�#�F�$:�$:�H�E����V�V�,� �J�J�'<�=�	?r"c�J�SnURURU5S5 g)Ns��€.rLr4rMs  r �test_binbytes8�$AbstractUnpickleTests.test_binbytes8�s!��A��������F�+�-@�Ar"c�J�SnURURU5S5 g)Ns��€.r_r4rMs  r �test_binunicode8�&AbstractUnpickleTests.test_binunicode8�s ��A��������F�+�\�:r"c�\�SnURURU5[S55 g)Ns��xxx.sxxx)r�r��	bytearrayrMs  r �test_bytearray8�%AbstractUnpickleTests.test_bytearray8�s%��D��������F�+�Y�v�->�?r"c�T�SnUR[R[4U5 g)Ns��€.rUrMs  r �test_large_32b_binbytes8�.AbstractUnpickleTests.test_large_32b_binbytes8��%��A���#�#�V�%;�%;�]�$K�$*�	,r"c�T�SnUR[R[4U5 g)Ns��€.rUrMs  r �test_large_32b_bytearray8�/AbstractUnpickleTests.test_large_32b_bytearray8�rsr"c�T�SnUR[R[4U5 g)Ns��€.rUrMs  r �test_large_32b_binunicode8�0AbstractUnpickleTests.test_large_32b_binunicode8�rsr"c��SnUR[RU5 URS5 SSS5 g!,(df   g=f)Nz(BINSTRING pickle has negative byte countsT�)�assertRaisesRegexrrVr�)r2�errmsgs  r �test_large_binstring�*AbstractUnpickleTests.test_large_binstring�s6��;��
�
#�
#�F�$:�$:�F�
C��J�J�~�&�D�
C�
C�s	�>�
Ac��SnURU5nURU/4S-5 URUSUS5 g)Ns((lp100000
g100000
t.r�rr�r�r�r��r2�pickled�	unpickleds   r �test_get�AbstractUnpickleTests.test_get�sA��,���J�J�w�'�	�����R�E�!�G�,��
�
�i��l�I�a�L�1r"c��SnURU5nURU/4S-5 URUSUS5 g)Ns(]q�h�t.r�rrr�r�s   r �test_binget�!AbstractUnpickleTests.test_binget�sA��#���J�J�w�'�	�����R�E�!�G�,��
�
�i��l�I�a�L�1r"c��SnURU5nURU/4S-5 URUSUS5 g)Ns(]rjt.r�rrr�r�s   r �test_long_binget�&AbstractUnpickleTests.test_long_binget�sA��;���J�J�w�'�	�����R�E�!�G�,��
�
�i��l�I�a�L�1r"c��SnURU5nURU/4S-5 URUSUS5 g)Ns((l2t.r�rrr�r�s   r �test_dup�AbstractUnpickleTests.test_dup�sA�����J�J�w�'�	�����R�E�!�G�,��
�
�i��l�I�a�L�1r"c�4�SnUR[U5 g)NsVa
p-1
.�r�rrMs  r �test_negative_put�'AbstractUnpickleTests.test_negative_put�s�����#�#�J��7r"c�4�SnUR[U5 g)Ns�Xar����.r�rMs  r �test_negative_32b_binput�.AbstractUnpickleTests.test_negative_32b_binput�s��A���#�#�J��7r"c�0�UR[S5 g)NsS'\'
.r�r7s r �test_badly_escaped_string�/AbstractUnpickleTests.test_badly_escaped_string�s���#�#�J��<r"c�^�/SQnUH#nUR[RU5 M% g)N)
sS'
.sS"
.sS' 
.sS" 
.sS'"
.sS"'
.sS' ' 
.sS" " 
.sS ''
.sS ""
.sS 
.sS
.sS.)r�rrV�r2�
badpickles�ps   r �test_badly_quoted_string�.AbstractUnpickleTests.test_badly_quoted_strings+���
��A��'�'��(>�(>��B�r"c�d�/SQnUH&up#URURU5U5 M( g)N))sS''
.rG)sS""
.rG)sS"\n"
.�
)sS'\n'
.r�r4)r2�goodpicklesr��expecteds    r �test_correctly_quoted_string�2AbstractUnpickleTests.test_correctly_quoted_strings/��-��'�K�A����T�Z�Z��]�H�5�'r"c�J�SnURURU5S5 g)Ns��I42
.�*r4)r2r�s  r �test_frame_readline�)AbstractUnpickleTests.test_frame_readlines"��G��
	
������G�,�b�1r"c�<�SnURU5nUR[U5[5 UR	U[SS55 UR	[U5/SQ5 SnURURU5[R5 SnURURU5[R5 SHVnSU-S	-nURU5nUR[U5[5 UR	[U5S
5 MX SHmnSU-S
-nURU5nUR[U5[R5 UR	U[R"SS055 Mo g)Ns�c__builtin__
xrange
KKK�R.r�)rr���r��s�c__builtin__
reduce
.s�cwhichdb
whichdb
.)s	Exceptionrs�cexceptions
s	
Uugh�R.�ugh)sUserDictsIterableUserDicts
�(cUserDict
s
o}Udata}KKssb.r�)r�r�rjr!r�r��	functools�reduce�dbm�whichdbr&r�collections�UserDict)r2r�r�rvs    r �test_compat_unpickle�*AbstractUnpickleTests.test_compat_unpickle#sE��H���J�J�w�'�	��
�
�d�9�o�u�-�����E�!�Q�K�0�����i��*<�=�4���
�
�d�j�j��)�9�+;�+;�<�1���
�
�d�j�j��)�3�;�;�7�4�D�/�$�6�9L�L�G��
�
�7�+�I��M�M�$�y�/�9�5����S��^�U�3�	5�7�D�.��5�6�7�G��
�
�7�+�I��M�M�$�y�/�;�+?�+?�@����Y��(<�(<�a��V�(D�E�7r"c���URURS5[5 URURS5[R5 URURS5[
RR5 URURS5[R5 [R"[RS[R"SS95 URURS5S5 SSS5 UR!["URS	5 UR!["URS
5 UR!UR$URS5 UR!UR$URS5 UR!UR$URS
5 g!,(df   N�=f)Nscbuiltins
str
.�cmath
log
.scos.path
join
.s�cbuiltins
str.upper
.�möduler���glöbals�cmödule
glöbal
.sc�
log
.s	cmath
�
.sc
log
.scmath

.s
�cmath

.)r�r�r�math�log�os�path�join�upperr�	swap_item�sys�modules�types�SimpleNamespacer�r��UnicodeDecodeError�truncated_errorsr7s r �test_load_global�&AbstractUnpickleTests.test_load_global>sF���
�
�d�j�j�!5�6��<��
�
�d�j�j�!1�2�D�H�H�=��
�
�d�j�j�!5�6������E��
�
�d�j�j�!C�D�c�i�i�P�
�
�
�s�{�{�I�u�7L�7L�UW�7X�
Y����T�Z�Z�(S�T�VX�Y�Z�	
���,�d�j�j�:J�K����,�d�j�j�:K�L����$�/�/����\�J����$�/�/����]�K����$�/�/����=R�S�Z�
Y�s�5"G�
G%c��URURS5[5 URURS5[R5 URURS5[
RR5 URURS5[R5 [R"[RS[R"SS95 URURS5S5 SSS5 UR!["URS	5 UR!["URS
5 UR![$URS5 UR![&URS5 UR![&URS
5 UR![(R*URS5 UR![(R*URS5 UR![(R*URS5 g!,(df   GN6=f)Ns�builtins�str�.�
�math�log�.s�os.path�join�.s��builtins�	str.upper�.r�r�r�s��mödule�glöbal�.s
���log�.s�math���.s	��log�.s
�math��.s��math��.sN�log�.s	�mathN�.s��mathN�.)r�r�rr�r�r�r�r�r�rr�r�r�r�r�r�r�r�r�AttributeErrorrrVr7s r �test_load_stack_global�,AbstractUnpickleTests.test_load_stack_globalLs����
�
�d�j�j�!D�E�s�K��
�
�d�j�j�!@�A�4�8�8�L��
�
�d�j�j�!D�E��g�g�l�l�	$��
�
�d�j�j�!R�S��i�i�	!�
�
�
�s�{�{�I�u�7L�7L�UW�7X�
Y����T�Z�Z�(b�c�eg�h�Z�	
���,�d�j�j�:Y�Z����,�d�j�j�:Z�[����*�d�j�j�2M�N����.�$�*�*�6R�S����.�$�*�*�6Z�[����&�0�0�$�*�*�>R�S����&�0�0�$�*�*�>S�T����&�0�0�$�*�*�>[�\�Z�
Y�s�5"I�
Ic��	�UR[R"55nUR[R"5SS9nUR[R"S55nUR5 UR	URSS5[5 UR[UR
SS5 UR	URSS5[5 UR	URSS5[5 UR	URSS5[R5 UR	URS	S
5[RR5 UR	URS	S
5[RR5 UR	URSS5[R5 UR[5 URSS5 SSS5 UR[5 URSS5 SSS5 UR[5 URSS5 SSS5 UR[5 URSS
5 SSS5 UR[5 URSS
5 SSS5 UR[5 URSS5 SSS5 UR[5 URSS5 SSS5 UR[5 URSS5 SSS5 UR[5 URSS5 SSS5 UR[UR
SS5 UR[ UR
SS5 UR["UR
SS5 UR["UR
SS5 UR["[4UR
SS5 g!,(df   GN@=f!,(df   GN"=f!,(df   GN=f!,(df   GN�=f!,(df   GN�=f!,(df   GN�=f!,(df   GN�=f!,(df   GNn=f!,(df   GNP=f)NF)�fix_importss�N.�__builtin__r�builtinsr�r�zos.pathr�z	str.upper�spamzlog.spamzlog.<locals>.spamrG)�	unpicklerr<rM�loadr��
find_classrr��ModuleNotFoundErrorr�r�r�r�r�r�r�r�	TypeError)r2r��unpickler_nofix�
unpickler4s    r �test_find_class�%AbstractUnpickleTests.test_find_class`sN���N�N�2�:�:�<�0�	��.�.�����5�.�I���^�^�B�J�J�}�$=�>�
������
�
�i�*�*�=�%�@�#�F����-�)�4�4�m�U�	L��
�
�i�*�*�:�u�=�s�C��
�
�o�0�0��U�C�S�I��
�
�i�*�*�6�5�9�4�8�8�D��
�
�i�*�*�9�f�=�r�w�w�|�|�L��
�
�i�*�*�9�f�=�r�w�w�|�|�L��
�
�j�+�+�J��D�c�i�i�P�
�
�
�~�
.�� � ��[�9�/��
�
�~�
.�� � ���0�/�
�
�
�~�
.��!�!�&�&�1�/�
�
�
�~�
.�� � ���4�/�
�
�
�~�
.��!�!�&�*�5�/�
�
�
�~�
.�� � ��)<�=�/�
�
�
�~�
.��!�!�&�*=�>�/�
�
�
�~�
.�� � ���,�/�
�
�
�~�
.��!�!�&�"�-�/����-�y�/C�/C�V�U�S����*�i�&:�&:�B��F����)�Y�%9�%9�4��G����)�Y�%9�%9�6�4�H����9�n�5�z�7L�7L�f�VZ�[�1/�
.��/�
.��
.�
.��
.�
.��
.�
.��
.�
.��
.�
.��
.�
.��
.�
.�sl�:Q�*Q�Q*�
Q<�:R�*R �R2�
S�:S�
Q�
Q'�*
Q9�<
R�
R� 
R/�2
S�
S�
S%c�^�U4SjnTRU"S5S5 TRU"S5S5 U4SjnTRU"S5S5 TRU"S5S5 U4SjnTRU"S5S5 TRU"S5S5 U4SjnTRU"S5S5 TRU"S5S5 g)Nc�>�"SSTR5nU"[R"U55R5$)Nc��\rSrSrSrSrg)�NAbstractUnpickleTests.test_custom_find_class.<locals>.loads.<locals>.Unpickleri�c��X4$r'r()r2�module_name�global_names   r r��YAbstractUnpickleTests.test_custom_find_class.<locals>.loads.<locals>.Unpickler.find_class�s��'�5�5r"r(N)rDrErFrGr�rHr(r"r �	Unpicklerr��s��6r"r��r�r<rMr��r�r�r2s  �r r��;AbstractUnpickleTests.test_custom_find_class.<locals>.loads�s2���
6�D�N�N�
6��R�Z�Z��-�.�3�3�5�5r"r�)r�r�r�c�>�"SSTR5nU"[R"U55R5$)Nc�$�\rSrSr\S5rSrg)r�i�c��X4$r'r(�r�r�s  r r�r�����'�5�5r"r(N)rDrErFrG�staticmethodr�rHr(r"r r�r��s���6��6r"r�r�r�s  �r r�r���2���
6�D�N�N�
6��R�Z�Z��-�.�3�3�5�5r"c�>�"SSTR5nU"[R"U55R5$)Nc�$�\rSrSr\S5rSrg)r�i�c��X4$r'r()r�r�r�s   r r�r��r�r"r(N)rDrErFrGr�r�rHr(r"r r�r��s���6��6r"r�r�r�s  �r r�r��r�r"c�>�"SSTR5nSnU"[R"U55nX#lUR	5$)Nc��\rSrSrSrg)r�i�r(N�rDrErFrGrHr(r"r r�r�����r"r�c��X4$r'r(r�s  r r��OAbstractUnpickleTests.test_custom_find_class.<locals>.loads.<locals>.find_class�s��#�1�1r")r�r<rMr�r�)r�r�r�r�r2s    �r r�r��s>���
�D�N�N�
�
2�!�"�*�*�T�"2�3�I�#-� ��>�>�#�#r")r�)r2r�s` r �test_custom_find_class�,AbstractUnpickleTests.test_custom_find_class�s����	6�	
����/�0�/�B�����>�?��Q�	6�	
����/�0�/�B�����>�?��Q�	6�	
����/�0�/�B�����>�?��Q�	$�	
����/�0�/�B�����>�?��Qr"c�L�UR[S5 UR[S5 UR[S5 UR[S5 UR[S5 UR[S5 UR[RS5 UR[RS5 UR[RS	5 UR[RS
5 UR[RS5 g)N��.s��.s�.s���.s�.s����.s�.s�.s�.s��.s�����.)r�rrrVr7s r �test_bad_ext_code�'AbstractUnpickleTests.test_bad_ext_code�s����#�#�J��=��#�#�J��=��#�#�J�0@�A��#�#�J�0@�A��#�#�J�0H�I��#�#�J�0H�I��#�#�F�$:�$:�L�I��#�#�F�$:�$:�<L�M��#�#�F�$:�$:�<T�U��#�#�F�$:�$:�<T�U��#�#�F�$:�$:�<T�Ur"c�F^^�SmUU4SjnU"S[5 U"S[5 U"[R4[[45 U"[RSS4[[45 U"[RS4[[45 U"S[[45 g)Nrc�>�[R"[RTU5 TR	U5 TRS5 SSS5 SSS5 g!,(df   N=f!,(df   g=f)Nr�)rr�r[r\r�r�)rr�rr2s  ��r �check�CAbstractUnpickleTests.test_bad_ext_inverted_registry.<locals>.check�sT����"�"�7�#=�#=�t�S�I��&�&�s�+��J�J�|�,�,�J�I�+�+��J�I�s"�A.�A�A.�
A+	�'A.�.
A<r(�MyListr*)Nr)rrrEr�)r2rrs` @r �test_bad_ext_inverted_registry�4AbstractUnpickleTests.test_bad_ext_inverted_registry�s������	-�	�d�J��
�b�*��
�v� � �"�Y�
�$;�<�
�v� � �(�C�0�9�j�2I�J�
�v� � �$�'�)�Z�)@�A�
���J� 7�8r"c��URURS5S5 UR[S5 UR[S5 g)Nscbuiltins
int
)R.rsN)R.scbuiltins
int
NR.)r�r�r�r�r7s r �test_bad_reduce�%AbstractUnpickleTests.test_bad_reduce�s=��������$:�;�Q�?��#�#�I�w�7��#�#�I�/E�Fr"c��[R[4nURUR	S5S5 URUS5 URUS5 g)Nscbuiltins
int
)�.rscbuiltins
len
)�.scbuiltins
int
N�.�rrVr�r�r�r��r2�errors  r �test_bad_newobj�%AbstractUnpickleTests.test_bad_newobj�sN���'�'��3��������$=�>��B��#�#�E�+D�E��#�#�E�+D�Er"c���[R[4nURUR	S5S5 URUS5 URUS5 URUS5 g)Nscbuiltins
int
)}�.rscbuiltins
len
)}�.scbuiltins
int
N}�.scbuiltins
int
)N�.rrs  r �test_bad_newobj_ex�(AbstractUnpickleTests.test_bad_newobj_ex�s_���'�'��3��������$>�?��C��#�#�E�+E�F��#�#�E�+E�F��#�#�E�+E�Fr"c��[5nSUlSnURURUS-5U5 URURUS-5U5 UR	[
US-5 [R[4nUR	X2S-5 UR	X2S-5 UR	X2S-5 UR	[
US-5 UR	[
US	-5 UR	X2S
-5 UR	X2S-5 "SS
5nU[l
UR	[US-5 g)Nsc__main__
C
)�s}XxNsb.s
N}XxNs�b.s}]Nsb.s](}}eb.s}�b.s}}}�b.s}}]Ns�b.s}}NNs�b.s�}�b.s}��b.c��\rSrSrSrSrSrg)�5AbstractUnpickleTests.test_bad_state.<locals>.BadKey1i�rc�\�UR(d[eU=RS-slg)Nrr�)�count�CustomErrorr7s r �__hash__�>AbstractUnpickleTests.test_bad_state.<locals>.BadKey1.__hash__�s���z�z�%�%��
�
�a��
�r"r(N)rDrErFrGrrrHr(r"r �BadKey1r�s���E�
r"rs}c__main__
BadKey1
)�Nsb.)r�r*r�r�r�r�rrVr��__main__rr)r2r��baser
rs     r �test_bad_state�$AbstractUnpickleTests.test_bad_state�s+��
�C�����%��������D�+E�$E�F��J�������D�+J�$J�K�Q�O��#�#�I�t�i�/?�@��'�'��8���#�#�E�*�+<�=��#�#�E�*�+<�=��#�#�E�,�+>�?��#�#�I�t�n�/D�E��#�#�I�t�n�/D�E��#�#�E�.�+@�A��#�#�E�.�+@�A�	�	�#����#�#�K��8Y�1Y�Zr"c�V�/SQnUHnURURU5 M! g)N),�.�0�1�2s(2�Rs)R�asNa�bsNb�d�es(esibuiltins
list
�l�os(osp1
sqsr�ssNssNNs�t�us(us}(Nu��s)�����sN���sN�sNN���s(�����s)}���sVlist
����r��bad_stack_errorsr�s   r �test_bad_stack�$AbstractUnpickleTests.test_bad_stacks,��-
�
�\�A��'�'��(=�(=�q�A�r"c�V�/SQnUHnURURU5 M! g)N)sN(.sN(2scbuiltins
list
)(Rscbuiltins
list
()Rs]N(ascbuiltins
ValueError
)R}(bscbuiltins
ValueError
)R(}bs(NdsN(p1
sN(qsN(rs}NN(ss}N(Nss}(NNss}((uscbuiltins
list
)(�scbuiltins
list
()�sN(�sNN(�sN(N�sNNN(�sNN(N�sN(NN�s]((�scbuiltins
list
)}(�scbuiltins
list
)(}�scbuiltins
list
()}�sVbuiltins
(Vlist
�sVbuiltins
Vlist
(�sN(�r8r�s   r �
test_bad_mark�#AbstractUnpickleTests.test_bad_mark8s,��"
�
�F�A��'�'��(=�(=�q�A�r"c��UR[S5 UR[S5 /SQnUHnURURU5 M! g)Nr"�N)U�BsBsBsBab�CsCsCab�FsF0.0sF0.00�GsGrsI0�JsJ�K�LsL0sL10sL0LsL10L�MsM�SsS'abc'�TsTsTsTab�UsUsUab�VsVabcrsXsXsXabs(cs
(cbuiltinss(cbuiltins
s(cbuiltins
listsNgsNg0s(is
(ibuiltinss(ibuiltins
s(ibuiltins
listsNhsNjsNjsNpsNp0sNqsNrsNr������s���s�����s���s�s�ab��s�s	�s�ab��s�s	�s�ab��s�s	�s�ab��s�s	�s
�N)r��EOFErrorr�r�s   r �test_truncated_data�)AbstractUnpickleTests.test_truncated_data_sM���#�#�H�c�2��#�#�H�d�3�X
�
�r�A��'�'��(=�(=�q�A�r"c�8^
^^�[S5n[S5n[R"[5 UR	[
R[5 [RRS[5 UR	[RR[5 [[RR[S5S5nURURS55 SSS5 [[RR[S5S5nURURS55 SSS5 UR	[S5 UR	[S	5 SSKnS
m/m["R$"S5m
U
UU4Sjn["R&"US
9n["R&"US
9nUR)5 UR)5 T
R+5 UR,R+5 UR5 UR5 SSKJn UR3TV	s/sHn	[5U	5PM sn	U/S-5 g!,(df   GN�=f!,(df   GN<=fs sn	f)NzI
        import threading
        barrier = threading.Barrier(2)
        zs
        import locker
        locker.barrier.wait()
        class ToBeUnpickled(object):
            pass
        rz	locker.py�wb�utf-8zlocking_import.py�locker�locking_imports'�clocking_import
ToBeUnpickled
q)�q.r�c�p>�TR5 TR[R"T55 gr')�waitr�rr�)�barrier�pickle_bytes�resultss���r �t�:AbstractUnpickleTests.test_unpickle_module_race.<locals>.t�s#���
�L�L�N��N�N�6�<�<��5�6r")�target)�
ToBeUnpickledr�)rr��mkdirr
�
addCleanup�shutil�rmtreer�r��insert�remove�openr�rRrrr^�	threading�Barrier�Threadr+rarbr_rhr�rj)
r2�
locker_module�locking_import_module�fr^re�t1�t2rhr*rbrcrds
          @@@r �test_unpickle_module_race�/AbstractUnpickleTests.test_unpickle_module_race�s����� �
�
�!'�(�!
��	���������
�
�v�.�������6�"����������0�
�"�'�'�,�,�v�{�3�T�
:�a�
�G�G�M�(�(��1�2�;�
�"�'�'�,�,�v�':�;�T�
B�a�
�G�G�)�0�0��9�:�C������)����� 0�1��
H�	����#�#�A�&��	7��
�
�Q�
'��
�
�
�Q�
'��
���
�
���
�����������
���	�
���	�0����%�&�g��T�!�W�g�&�
�O�a��	!�M;�
:��
B�
B��J
's�!I3�/!J�J�3
J�
Jr(r')BrDrErFrGr�r�r�r�r�r�r�r�r�r
rr/r5r8r@rDrIrOrR�requires_32brXr\r`rdrgrjrnrqrurxr}r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�cpython_onlyrrrrrr:r=rYr�reap_threads�requires_working_threadingrxrHr(r"r r�r��s����
�I�H�$	�?�?�?�?�?�7?�r6�/�<	E�	=�C�4�$�
B�B��,��,��,��,�;�?�B�;�@��,��,�
�,��,�
�,��,�
'�
2�2�2�2�8�
�8��8�
=�C�$6�2�F�6T�]�((\�T(R�T
V�
���9��9�G�
F�G�![�F0B�d%B�N]B�~�"�"��0�0�2�9!�3�#�9!r"r�c�>�\rSrSrSrSrSrSrSrSr	Sr
S	rS
rSr
SrS
rSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSr Sr!S r"S!r#S"r$S#r%S$r&S%r'S&r(\)S'5r*S(r+S)r,S*r-S+r.\/R`S,5r1S-r2g.)/�AbstractPicklingErrorTestsi�c	�|�[[S/5n[HTnURUS9 UR	[
R5 URX5 SSS5 SSS5 MV [[45n[HTnURUS9 UR	[
R5 URX5 SSS5 SSS5 MV [[SSSSSS45n[HTnURUS9 UR	[
R5 URX5 SSS5 SSS5 MV g!,(df   N�=f!,(df   GM\=f!,(df   N�=f!,(df   GM=f!,(df   Nc=f!,(df   M�=f�Nr(��proto��REXr��	protocolsr�r�r�
PicklingError�dumps�r2r�r�s   r �test_bad_reduce_result�1AbstractPicklingErrorTests.test_bad_reduce_result�s=���5�"�+����E����E��*��&�&�v�';�';�<��J�J�s�*�=�+�*��
�5�(�m���E����E��*��&�&�v�';�';�<��J�J�s�*�=�+�*��
�5�"�d�D�$��d�;�<���E����E��*��&�&�v�';�';�<��J�J�s�*�=�+�*��=�<��+�*��=�<��+�*��=�<��+�*�sk� E$�
E�E$� F�8E7�
F� F,�,F�>F,�
E!�E$�$
E4	�7
F�F�
F	�
F)�%F,�,
F;	c��[S5n[HTnURUS9 UR[R
5 UR
X5 SSS5 SSS5 MV g!,(df   N=f!,(df   My=f)N)r�r(r�)r�r�r�r�rr�r�r�s   r �test_bad_reconstructor�1AbstractPicklingErrorTests.test_bad_reconstructors`���(�m���E����E��*��&�&�v�';�';�<��J�J�s�*�=�+�*��<�<��+�*�s#� A<�A+�A<�+
A9�5A<�<
B	c��[[5S45n[HJnURUS9 UR	[
5 UR
X5 SSS5 SSS5 ML g!,(df   N=f!,(df   Mo=fr�)r��UnpickleableCallabler�r�r�rr�r�s   r �test_unpickleable_reconstructor�:AbstractPicklingErrorTests.test_unpickleable_reconstructorsd���'�)�2�.�/���E����E��*��&�&�{�3��J�J�s�*�4�+�*��3�3��+�*�s#�A<�A+�A<�+
A9�5A<�<
B	c�(�[[/45n[HTnURUS9 UR	[
R5 URX5 SSS5 SSS5 MV g!,(df   N=f!,(df   My=f�Nr�r�r�s   r �test_bad_reconstructor_args�6AbstractPicklingErrorTests.test_bad_reconstructor_args se���5�"�+����E����E��*��&�&�v�';�';�<��J�J�s�*�=�+�*��<�<��+�*�s#� B�
A1�B�1
A?�;B�
B	c�"�[[SS[445n[HJnUR	US9 UR[5 URX5 SSS5 SSS5 ML g!,(df   N=f!,(df   Mo=f�Nrr�r��r�r��UNPICKLEABLEr�r�r�rr�r�s   r �$test_unpickleable_reconstructor_args�?AbstractPicklingErrorTests.test_unpickleable_reconstructor_args'sg���5�1�a��.�/�0���E����E��*��&�&�{�3��J�J�s�*�4�+�*��3�3��+�*�s#�A?�A.�A?�.
A<�8A?�?
B	c��[[RS45n[SSHZnUR	US9 UR[[R45nURX5 SSS5 SSS5 M\ [[R[/45n[SSHZnUR	US9 UR[[R45 URX5 SSS5 SSS5 M\ g!,(df   N�=f!,(df   GM=f!,(df   N?=f!,(df   M�=f�Nr(r�r�)
r�r[�
__newobj__r�r�r��
IndexErrorrr�r�)r2r�r��cms    r �test_bad_newobj_args�/AbstractPicklingErrorTests.test_bad_newobj_args.s����7�%�%�r�*�+���q�r�]�E����E��*��&�&�
�F�4H�4H�'I�J�b��J�J�s�*�K�+�*�#�
�7�%�%��u�-�.���q�r�]�E����E��*��&�&�
�F�4H�4H�'I�J��J�J�s�*�K�+�*�#�	K�J��+�*��K�J��+�*�sG�&D�D�/D�>&E�$D/�6E�
D�D�
D,	�/
D=�9E�
E	c�T�[[R[5445n[SSHTnURUS9 UR
[R5 URX5 SSS5 SSS5 MV g!,(df   N=f!,(df   My=f�Nr�r�)
r�r[r��NoNewr�r�r�rr�r�r�s   r �test_bad_newobj_class�0AbstractPicklingErrorTests.test_bad_newobj_class;sv���7�%�%���z�2�3���q�r�]�E����E��*��&�&�v�';�';�<��J�J�s�*�=�+�*�#�<�<��+�*�s$� B� B�2B�
B�B�
B'	c�L�[[R[445n[SSHTnURUS9 UR
[R5 URX5 SSS5 SSS5 MV g!,(df   N=f!,(df   My=fr�)
r�r[r�rr�r�r�rr�r�r�s   r �test_wrong_newobj_class�2AbstractPicklingErrorTests.test_wrong_newobj_classBst���7�%�%��v�.�/���q�r�]�E����E��*��&�&�v�';�';�<��J�J�s�*�=�+�*�#�<�<��+�*�s#� B�B�.B�
B�
B�
B#	c�b�"SS[5nU"[RU445n[HZnUR	US9 UR[R[45 URX#5 SSS5 SSS5 M\ g!,(df   N=f!,(df   M=f)Nc��\rSrSrSrg)�KAbstractPicklingErrorTests.test_unpickleable_newobj_class.<locals>.LocalREXiJr(Nr�r(r"r �LocalREXr�J���Tr"r�r�)
r�r[r�r�r�r�rr�r�r��r2r�r�r�s    r �test_unpickleable_newobj_class�9AbstractPicklingErrorTests.test_unpickleable_newobj_classIs|��!�s�!���*�*�X�K�8�9���E����E��*��&�&��(<�(<�n�'M�N��J�J�s�*�O�+�*��N�N��+�*�s$�&B�'B�9B�
B�B�
B.	c�@�[[R[SS[445n[HJnURUS9 UR
[5 URX5 SSS5 SSS5 ML g!,(df   N=f!,(df   Mo=fr�)	r�r[r�r�r�r�r�rr�r�s   r �test_unpickleable_newobj_args�8AbstractPicklingErrorTests.test_unpickleable_newobj_argsQso���7�%�%��Q��<�'@�A�B���E����E��*��&�&�{�3��J�J�s�*�4�+�*��3�3��+�*�s$�B�A=�(B�=
B�B�
B	c��[[RS45n[SSHZnUR	US9 UR[[R45 URX5 SSS5 SSS5 M\ [[RS45n[SSHTnUR	US9 UR[R5 URX5 SSS5 SSS5 MV [[R[S0445nUR[RLnU(a	[SSO[SSHZnUR	US9 UR[[R45 URX5 SSS5 SSS5 M\ [[R[S/445nU(a	[SSO[SSHZnUR	US9 UR[[R45 URX5 SSS5 SSS5 M\ g!,(df   GN�=f!,(df   GMK=f!,(df   GN�=f!,(df   GM�=f!,(df   N�=f!,(df   GMc=f!,(df   N�=f!,(df   M�=f)Nr(r�r�r�r�)
r�r[�
__newobj_ex__r�r�r�rrr�r��pickler�_Picklerr�)r2r�r��is_pys    r �test_bad_newobj_ex_args�2AbstractPicklingErrorTests.test_bad_newobj_ex_argsXs���7�(�(�"�-�.���q�r�]�E����E��*��&�&�
�F�4H�4H�'I�J��J�J�s�*�K�+�*�#�
�7�(�(�"�-�.���q�r�]�E����E��*��&�&�v�';�';�<��J�J�s�*�=�+�*�#�
�7�(�(�3��B�-�8�9��������/��',�Y�q��^�)�A�B�-�?�E����E��*��&�&�	�6�3G�3G�'H�I��J�J�s�*�J�+�*�@�
�7�(�(�3��B�-�8�9��',�Y�q��^�)�A�B�-�?�E����E��*��&�&�	�6�3G�3G�'H�I��J�J�s�*�J�+�*�@�#K�J��+�*��=�<��+�*��J�I��+�*��J�I��+�*�s��&I �I�/I �9 J�I3�+J�(&J)�J� J)�&K
�'J<�9K
�
I�I � 
I0	�3
J�=J�
J	�
J&�"J)�)
J9	�<
K
�K
�
K	c�X�[[R[5S0445n[SSHTnURUS9 UR
[R5 URX5 SSS5 SSS5 MV g!,(df   N=f!,(df   My=fr�)
r�r[r�r�r�r�r�rr�r�r�s   r �test_bad_newobj_ex__class�4AbstractPicklingErrorTests.test_bad_newobj_ex__classrs{���7�(�(�5�7�B��*;�<�=���q�r�]�E����E��*��&�&�v�';�';�<��J�J�s�*�=�+�*�#�<�<��+�*�s$� B�"B	�4B�	
B�B�
B)	c��UR[RLaURS5 [	[
R[S0445n[SSHTnURUS9 UR[R5 URX5 SSS5 SSS5 MV g!,(df   N=f!,(df   My=f)Nz*only verified in the Python implementationr(r�r�)
r�rr��skipTestr�r[r�rr�r�r�r�r�r�s   r �test_wrong_newobj_ex_class�5AbstractPicklingErrorTests.test_wrong_newobj_ex_classys����<�<�v���.��M�M�F�G��7�(�(�3��B�-�8�9���q�r�]�E����E��*��&�&�v�';�';�<��J�J�s�*�=�+�*�#�<�<��+�*�s$�, C�B3�C�3
C�=C�
C	c�f�"SS[5nU"[RUS0445n[HZnUR	US9 UR[R[45 URX#5 SSS5 SSS5 M\ g!,(df   N=f!,(df   M=f)Nc��\rSrSrSrg)�NAbstractPicklingErrorTests.test_unpickleable_newobj_ex_class.<locals>.LocalREXi�r(Nr�r(r"r r�r��r�r"r�r(r�)
r�r[r�r�r�r�rr�r�r�r�s    r �!test_unpickleable_newobj_ex_class�<AbstractPicklingErrorTests.test_unpickleable_newobj_ex_class�s���!�s�!���-�-��"�b�/A�B�C���E����E��*��&�&��(<�(<�n�'M�N��J�J�s�*�O�+�*��N�N��+�*�s$�&B!�)B�;B!�
B�B!�!
B0	c�D�[[R[SS[40445n[HJnURUS9 UR
[5 URX5 SSS5 SSS5 ML g!,(df   N=f!,(df   Mo=fr��	r�r[r�r�r�r�r�rr�r�s   r � test_unpickleable_newobj_ex_args�;AbstractPicklingErrorTests.test_unpickleable_newobj_ex_args�st���7�(�(�3��A�|�0D�b�*I�J�K���E����E��*��&�&�{�3��J�J�s�*�4�+�*��3�3��+�*�s$�B�A?�*B�?
B
�	B�
B	c�B�[[R[SS[0445n[HJnURUS9 UR
[5 URX5 SSS5 SSS5 ML g!,(df   N=f!,(df   Mo=f)Nr(�ar�r�r�s   r �"test_unpickleable_newobj_ex_kwargs�=AbstractPicklingErrorTests.test_unpickleable_newobj_ex_kwargs�sr���7�(�(�3��S�,�4G�*H�I�J���E����E��*��&�&�{�3��J�J�s�*�4�+�*��3�3��+�*�s$�B�A>�)B�>
B�B�
B	c��[[5n[HJnURUS9 UR	[
5 UR
X5 SSS5 SSS5 ML g!,(df   N=f!,(df   Mo=fr�)�	REX_stater�r�r�r�rr�r�s   r �test_unpickleable_state�2AbstractPicklingErrorTests.test_unpickleable_state�s[����%���E����E��*��&�&�{�3��J�J�s�*�4�+�*��3�3��+�*�s"�A6�A%�A6�%
A3�/A6�6
B	c��UR[RLaURS5 [	[
SSSSS45n[HTnURUS9 UR[R5 URX5 SSS5 SSS5 MV g!,(df   N=f!,(df   My=f)Nz%only verified in the C implementationr(�stater�r�)r�rr�r�r�r�r�r�r�r�r�r�s   r �test_bad_state_setter�0AbstractPicklingErrorTests.test_bad_state_setter�s����<�<�6�?�?�*��M�M�A�B��5�"�g�t�T�2�6�7���E����E��*��&�&�v�';�';�<��J�J�s�*�=�+�*��<�<��+�*�s$� B4�<B#�B4�#
B1�-B4�4
C	c	�,�[[SSSS[545n[HJnUR	US9 UR[5 URX5 SSS5 SSS5 ML g!,(df   N=f!,(df   Mo=f)Nr(r�r�)r�r�r�r�r�r�rr�r�s   r �test_unpickleable_state_setter�9AbstractPicklingErrorTests.test_unpickleable_state_setter�sl���5�"�g�t�T�3G�3I�J�K���E����E��*��&�&�{�3��J�J�s�*�4�+�*��3�3��+�*��#�B�A3�B�3
B�=B�
B	c�,�[[S[SS[45n[HJnUR	US9 UR[5 URX5 SSS5 SSS5 ML g!,(df   N=f!,(df   Mo=fr�r�r�s   r �)test_unpickleable_state_with_state_setter�DAbstractPicklingErrorTests.test_unpickleable_state_with_state_setter�sh���5�"�l�D�$��>�?���E����E��*��&�&�{�3��J�J�s�*�4�+�*��3�3��+�*�r�c��[[SSS45n[HZnURUS9 UR	[
[R45 URX5 SSS5 SSS5 M\ UR[RLax[[SS/45n[HZnURUS9 UR	[
[R45 URX5 SSS5 SSS5 M\ gg!,(df   N�=f!,(df   GM=f!,(df   N@=f!,(df   M�=f)Nr(r�r�)r�r�r�r�r�r�rr�r�r�r�r�s   r �test_bad_object_list_items�5AbstractPicklingErrorTests.test_bad_object_list_items�s����4��T�2�&�'���E����E��*��&�&�	�6�3G�3G�'H�I��J�J�s�*�J�+�*��
�<�<�v���.��t�R��r�*�+�C�"���\�\��\�.��*�*�I�v�7K�7K�+L�M��
�
�3�.�N�/�.�#�/�J�I��+�*��N�M��/�.�sG�&D�D�$D�&E�&D2�8E�
D�D�
D/	�2
E�<E�
E	c��[SS[/5n[HJnURUS9 UR	[
5 UR
X5 SSS5 SSS5 ML g!,(df   N=f!,(df   Mo=fr�)�REX_sixr�r�r�r�rr�r�s   r �#test_unpickleable_object_list_items�>AbstractPicklingErrorTests.test_unpickleable_object_list_items�sb���q�!�\�*�+���E����E��*��&�&�{�3��J�J�s�*�4�+�*��3�3��+�*�s#�A9�A(�A9�(
A6�2A9�9
B	c
���[[SSSS45n[HZnURUS9 UR	[
[R45 URX5 SSS5 SSS5 M\ [Hnn[[SSS[S/545nURUS9 UR	[[
45 URX5 SSS5 SSS5 Mp UR[RLay[[SSS/45n[HZnURUS9 UR	[
[R45 URX5 SSS5 SSS5 M\ gg!,(df   GN*=f!,(df   GM�=f!,(df   N�=f!,(df   GMO=f!,(df   Ne=f!,(df   M�=f)Nr(r�r��r�)
r�rur�r�r�r�rr�r��iterrr�r�r�s   r �test_bad_object_dict_items�5AbstractPicklingErrorTests.test_bad_object_dict_items�sv���4��T�4��,�-���E����E��*��&�&�	�6�3G�3G�'H�I��J�J�s�*�J�+�*��
�E��t�R��t�T�6�(�^�<�=�C����E��*��&�&�
�I�'>�?��J�J�s�*�@�+�*���<�<�v���.��t�R��t�R�0�1�C�"���\�\��\�.��*�*�I�v�7K�7K�+L�M��
�
�3�.�N�/�.�#�/�J�I��+�*��@�?��+�*��N�M��/�.�sk�&F�F�%F�/F>�F-�F>�:&G"� G�2G"�
F�F�
F*	�-
F;�7F>�>
G	�
G�G"�"
G1	c��[S[05n[HJnURUS9 UR	[
5 UR
X5 SSS5 SSS5 ML g!,(df   N=f!,(df   Mo=f)Nr�r�)�	REX_sevenr�r�r�r�rr�r�s   r �#test_unpickleable_object_dict_items�>AbstractPicklingErrorTests.test_unpickleable_object_dict_items�s`����l�+�,���E����E��*��&�&�{�3��J�J�s�*�4�+�*��3�3��+�*�s#�A8�A'�A8�'
A5�1A8�8
B	c	�.�SSS[//n[HJnURUS9 UR[5 URX5 SSS5 SSS5 ML SHjn/[
U5Q[Pn[HJnURUS9 UR[5 URX5 SSS5 SSS5 ML Ml g!,(df   N�=f!,(df   M�=f!,(df   NB=f!,(df   M�=f)Nrr�r�r��rr��i��r�r�r�r�rr�r!�r2r�r�r$s    r �test_unpickleable_list_items�7AbstractPicklingErrorTests.test_unpickleable_list_items�s����1�a��&�'���E����E��*��&�&�{�3��J�J�s�*�4�+�*��$�A�+�E�!�H�+�l�+�C�"���\�\��\�.��*�*�;�7��
�
�3�.�8�/�.�#�$�4�3��+�*��8�7��/�.�sF�C"�C�C"�D�&C4	�8D�
C�C"�"
C1	�4
D
�>D�
Dc��SSS[44n[HJnURUS9 UR[5 URX5 SSS5 SSS5 ML /[
S5Q[P7n[HJnURUS9 UR[5 URX5 SSS5 SSS5 ML g!,(df   N�=f!,(df   M�=f!,(df   N>=f!,(df   M�=f)Nrr�r�r��
r�r�s   r �test_unpickleable_tuple_items�8AbstractPicklingErrorTests.test_unpickleable_tuple_items�s����1�a��&�'���E����E��*��&�&�{�3��J�J�s�*�4�+�*��)��b�	�(�<�(���E����E��*��&�&�{�3��J�J�s�*�4�+�*��4�3��+�*��4�3��+�*�sF�C�C	�C�C=�"C,�4C=�	
C�C�
C)	�,
C:�6C=�=
D	c	�T�SS[00n[HJnURUS9 UR[5 URX5 SSS5 SSS5 ML SH~n[R[U55n[US'[HJnURX#S9 UR[5 URX5 SSS5 SSS5 ML M� g!,(df   N�=f!,(df   M�=f!,(df   NB=f!,(df   M�=f)Nr��br�r�)r�r$)	r�r�r�r�rr�ru�fromkeysr!r�s    r �test_unpickleable_dict_items�7AbstractPicklingErrorTests.test_unpickleable_dict_itemss����S�,�'�(���E����E��*��&�&�{�3��J�J�s�*�4�+�*��$�A��-�-��a��)�C�#�C��H�"���\�\��\�3��*�*�;�7��
�
�3�.�8�4�3�#�$�4�3��+�*��8�7��4�3�sF�C5�C$�C5�#D�9D	�D�$
C2�.C5�5
D	�
D
�D�
D'c��[1n[HJnURUS9 UR[5 URX5 SSS5 SSS5 ML g!,(df   N=f!,(df   Mo=fr�)r�r�r�r�rr�r�s   r �test_unpickleable_set_items�6AbstractPicklingErrorTests.test_unpickleable_set_itemssX���n���E����E��*��&�&�{�3��J�J�s�*�4�+�*��3�3��+�*�s"�A.�A�A.�
A+�'A.�.
A=	c�&�[[[1515n[HJnURUS9 UR	[
5 UR
X5 SSS5 SSS5 ML g!,(df   N=f!,(df   Mo=fr�)�	frozensetr�r�r�r�rr�r�s   r �!test_unpickleable_frozenset_items�<AbstractPicklingErrorTests.test_unpickleable_frozenset_itemsse����L�>�2�3�4���E����E��*��&�&�{�3��J�J�s�*�4�+�*��3�3��+�*�s#�B�	A0�B�0
A>�:B�
B	c�p�[S5nSUl[HTnURUS9 UR	[
R5 URX5 SSS5 SSS5 MV SUl[HTnURUS9 UR	[
R5 URX5 SSS5 SSS5 MV SUl[HZnURUS9 UR	[[
R45 URX5 SSS5 SSS5 M\ SUl[HTnURUS9 UR	[
R5 URX5 SSS5 SSS5 MV g!,(df   GNQ=f!,(df   GM�=f!,(df   GN=f!,(df   GMp=f!,(df   N�=f!,(df   GM/=f!,(df   N�=f!,(df   M�=f)Nr�ztest.picklecommonr��nonexistingrG)	r�rEr�r�r�rr�r�rr�s   r �test_global_lookup_error�3AbstractPicklingErrorTests.test_global_lookup_error!s����&�k��,����E����E��*��&�&�v�';�';�<��J�J�s�*�=�+�*��
'����E����E��*��&�&�v�';�';�<��J�J�s�*�=�+�*��
����E����E��*��&�&�
�F�4H�4H�'I�J��J�J�s�*�K�+�*��
����E����E��*��&�&�v�';�';�<��J�J�s�*�=�+�*��!=�<��+�*��=�<��+�*��K�J��+�*��=�<��+�*�s�� F9�F'�F9� G�0G�G�5&H�G1�-H�  H&�H�H&�'
F6�1F9�9
G		�
G�G�
G.	�1
G?�;H�
H	�
H#�H&�&
H5	c	���[SSH�nURUS9 US:aSOSn[U5n[Ul[
R"[5X#5 UR[[R45 URX15 SSS5 SSS5 SSS5 M� g!,(df   N#=f!,(df   N,=f!,(df   M�=f)Nr�r�r��
nonasciiÿ�nonencodable�)
r�r�r�rDrErr��globalsr�r(rr�r�)r2r�rvr�s    r �#test_nonencodable_global_name_error�>AbstractPicklingErrorTests.test_nonencodable_global_name_error<s����r��]�E����E��*�).���~�8L���$�i��!)����&�&�w�y�$�<��*�*�,>��@T�@T�+U�V��
�
�3�.�W�=�	+�*�#�W�V��=�<��	+�*�s<�AC�&C�B1	�C�C�1
B?
�;C�
C�C�
C"	c	���[SSH�nURUS9 US:aSOSn[S5nX#l[R
"US9n[R"[RX$5 UR[[R45 URX15 SSS5 SSS5 SSS5 M� g!,(df   N#=f!,(df   N,=f!,(df   M�=f)Nr�r�r�r
r�test)r)r�r�r�rEr�r�rr�r�r�r�r(rr�r�)r2r�rvr��mods     r �#test_nonencodable_module_name_error�>AbstractPicklingErrorTests.test_nonencodable_module_name_errorFs����r��]�E����E��*�).���~�8L���&�k��!%���+�+��5���&�&�s�{�{�D�>��*�*�,>��@T�@T�+U�V��
�
�3�.�W�?�+�*�#�W�V��?�>��+�*�s<�AC(�1&C�C	�)C�1C(�
C
�C�
C%�!C(�(
C7	c�V�"SS5q[S5n[Ul[HTnURUS9 UR
[R5 URX5 SSS5 SSS5 MV SUl[HTnURUS9 UR
[R5 URX5 SSS5 SSS5 MV g!,(df   N�=f!,(df   M�=f!,(df   N>=f!,(df   M�=f)Nc�(�\rSrSr"SS5rSrg)�
TestGlobaliTc��\rSrSrSrg)�TestGlobal.AiUr(Nr�r(r"r �ArUr�r"rr(N)rDrErFrGrrHr(r"r rrTs��
�
r"rzTestGlobal.A.B.Cr��
rr�rDrEr�r�r�rr�r�r�s   r �test_nested_lookup_error�3AbstractPicklingErrorTests.test_nested_lookup_errorQs���	�	��$�%��!����E����E��*��&�&�v�';�';�<��J�J�s�*�=�+�*��
����E����E��*��&�&�v�';�';�<��J�J�s�*�=�+�*��	=�<��+�*��=�<��+�*��G� C6�C%�+C6� D�>D�D�%
C3�/C6�6
D	�
D�D�
D(	c�V�"SS5q[S5n[Ul[HTnURUS9 UR
[R5 URX5 SSS5 SSS5 MV SUl[HTnURUS9 UR
[R5 URX5 SSS5 SSS5 MV g!,(df   N�=f!,(df   M�=f!,(df   N>=f!,(df   M�=f)Nc��\rSrSrSrg)rigr(Nr�r(r"r rrg���r"rr�rr�s   r �test_wrong_object_lookup_error�9AbstractPicklingErrorTests.test_wrong_object_lookup_errords���	�	��,���!����E����E��*��&�&�v�';�';�<��J�J�s�*�=�+�*��
����E����E��*��&�&�v�';�';�<��J�J�s�*�=�+�*��	=�<��+�*��=�<��+�*�r c�^�Sn[HZnURUS9 UR[[R
45 UR
X5 SSS5 SSS5 M\ U?[HZnURUS9 UR[[R
45 UR
X5 SSS5 SSS5 M\ URUl	[HZnURUS9 UR[[R
45 UR
X5 SSS5 SSS5 M\ g!,(df   N�=f!,(df   GM[=f!,(df   N�=f!,(df   GM=f!,(df   Nc=f!,(df   M�=f)Nc��gr'r(r(r"r ru�=AbstractPicklingErrorTests.test_local_lookup_error.<locals>.fy���r"r�)
r�r�r�r�rr�r�rErFrD�r2rur�s   r �test_local_lookup_error�2AbstractPicklingErrorTests.test_local_lookup_errorvs7��	��E����E��*��&�&���8L�8L�'M�N��J�J�q�(�O�+�*��
�L��E����E��*��&�&���8L�8L�'M�N��J�J�q�(�O�+�*��
�^�^��
��E����E��*��&�&���8L�8L�'M�N��J�J�q�(�O�+�*��O�N��+�*��O�N��+�*��O�N��+�*�sk�&E�E�E�&E9�(E(�:E9�7&F�F�/F�
E�E�
E%	�(
E6�2E9�9
F		�
F�F�
F,	c��[5nUR[5 URU5 SSS5 g!,(df   g=fr')�REX_Noner�r�r��r2r�s  r �test_reduce_ex_None�.AbstractPicklingErrorTests.test_reduce_ex_None�s.���J��
�
�
�y�
)��J�J�q�M�*�
)�
)��	�;�
A	c��[5nUR[5 URU5 SSS5 g!,(df   g=fr')�R_Noner�r�r�r/s  r �test_reduce_None�+AbstractPicklingErrorTests.test_reduce_None�s.���H��
�
�
�y�
)��J�J�q�M�*�
)�
)�r2c�J�[5n[S5HCn[R"S5 UR	[
URX5 SSS5 ME [S[RS-5HnUR
X5nM g!,(df   M�=f)Nr��r)	�
BadGetattrr!r�infinite_recursionr��RuntimeErrorr�r�HIGHEST_PROTOCOL)r2r*r��ss    r �test_bad_getattr�+AbstractPicklingErrorTests.test_bad_getattr�sz��
�L���1�X�E��+�+�B�/��!�!�,��
�
�A�E�0�/���1�f�5�5��9�:�E��
�
�1�$�A�;�0�/�s�"B�
B"	c��[R"S5n[SS5HynURUS9 UR	[R
5nUR
X5 SSS5 UR[WR5S5 SSS5 M{ g!,(df   N@=f!,(df   M�=f)N�foobarrr�r�z3PickleBuffer can only be pickled with protocol >= 5)
rr�r!r�r��PickleErrorr�r�r�	exception)r2r�r�r�s    r �test_picklebuffer_error�2AbstractPicklingErrorTests.test_picklebuffer_error�s���
�
 �
 ��
+���1�a�[�E����E��*��&�&�v�'9�'9�:�b��J�J�r�)�;�� � ��R�\�\�!2�I�K�+�*�!�:�:��+�*�s#� B2�B!�'-B2�!
B/�+B2�2
C	c�b�[SSHnURUS9 [R"[	S5SSS25nUR[R[45 URX!5 SSS5 SSS5 M� g!,(df   N=f!,(df   M�=f)Nr�r�rAr�)	r�r�rr�r�r�r��BufferErrorr�)r2r�r�s   r �test_non_continuous_buffer�5AbstractPicklingErrorTests.test_non_continuous_buffer�s����q�r�]�E����E��*��(�(��I�)>�s��s�)C�D���&�&��(<�(<�k�'J�K��J�J�r�)�L�+�*�#�L�K��+�*�s$�AB�'B�9B�
B�B�
B.	c��Sn[R"S5nUR[5 UR	USUS9 SSS5 g!,(df   g=f)Nc��[er'�r��bufferss r �buffer_callback�NAbstractPicklingErrorTests.test_buffer_callback_error.<locals>.buffer_callback�s���r"rAr��rO)rr�r�rr�)r2rOr�s   r �test_buffer_callback_error�5AbstractPicklingErrorTests.test_buffer_callback_error�sC��	�
�
 �
 ��
+��
�
�
�{�
+��J�J�r�1�o�J�>�,�
+�
+�s�A
�

Ac�^^�"SS5qUU4Sjn[H�mU"[5/5 U"[5[5/5 U"[515 U"[5[515 U"[5S05 U"[5S[5S05 U"[5[5S.5 M� g)Nc��\rSrSrSrg)�Cleareri�r(Nr�r(r"r rVrV�r#r"rVc�>^�"U4SjSTR5nU"[R"5T5nURT5 g![a'nSnTRU[
U55 SnAgSnAff=f)Nc�">�\rSrSrU4SjrSrg)�dAbstractPicklingErrorTests.test_evil_pickler_mutating_collection.<locals>.check.<locals>.EvilPickleri�c�P>�[U[5(aTR5 gr')r�rV�clear)r2r��
collections  �r �
persistent_id�rAbstractPicklingErrorTests.test_evil_pickler_mutating_collection.<locals>.check.<locals>.EvilPickler.persistent_id�s���!�#�w�/�/�"�(�(�*�r"r(N)rDrErFrGr]rH)r\s�r �EvilPicklerrY�s
��� � r"r_�changed size during iteration)r�r<rM�dumpr;�assertInr)r\r_r��er�r�r2s`    ��r r�OAbstractPicklingErrorTests.test_evil_pickler_mutating_collection.<locals>.check�sb���
 �d�l�l�
 �
"�"�*�*�,��6�G�
0����Z�(���
0�:���
�
�h��A��/�/��
0�s�A
�

A;�A6�6A;rr��rr�)rVr�)r2rr�s` @r �%test_evil_pickler_mutating_collection�@AbstractPicklingErrorTests.test_evil_pickler_mutating_collection�s����	�	�	0��E��7�9�+���7�9�g�i�(�)��7�9�+���7�9�g�i�(�)��7�9�a�.�!��7�9�a���A�.�/��g�i�G�I�.�/�r"c�^^�[RS4mUU4SjnU"[5[5 U"S[5 U"S[[
R45 U"S[5 U"S[[[
R45 U"SS-[[
R45 U"SS-*[[
R45 g)Nrc	�>�T[R;deU[R;de[R"[RTU5 [R"[RUT5 [
SSH3nTR
U5 TR[U5 SSS5 M5 SSS5 SSS5 g!,(df   MW=f!,(df   N)=f!,(df   g=f�Nr�)	r[�_extension_registryr\rr�r�r�r�r)rr�r�rr2s   ��r r�;AbstractPicklingErrorTests.test_bad_ext_code.<locals>.check�s�����g�9�9�9�9�9��w�9�9�9�9�9��#�#�G�$?�$?��d�K��#�#�G�$>�$>��c�J�&�q�r�]�E��*�*�3�/��
�
�6�5�1�0�/�+�K�L�K�0�/��K�J��L�K�s<�'C0�;C�C
	�0C�<C0�
C
�C�
C-	�)C0�0
C>r�rlr�r�)rrEr)r�r;r=r
rW)r2rrs` @r r��,AbstractPicklingErrorTests.test_bad_ext_code�s����� � �(�+��	2�	�f�h�	�"�
�d�I��
�b�<����.�/�
�a���
�e�l�M�6�<�<�@�A�
�a��g�
�v�|�|�4�5�
�q�$�w�h�����5�6r"r(N)3rDrErFrGr�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�rrr
rrrr$r+r0r5rr>rDrHrRrfrr{r�rHr(r"r rr�s���+�&+�+�+�+�+�+�+�+�+�+�4+�+�+�+�+�+�+�+�+�/�"+�/�.+�/�
+�/�+�+�+�6/�	/�+�&+�$)�0�
�
�%��%�K�*�?�0�8
���7��7r"rc��\rSrSr\R
rSr\Rr	Sr
\RrSrSr
Sr\S4SjrS	rS
rSr\S4SjrS
rSrSr\S4SjrSrSrSr\S4SjrSrSrSr\S4Sjr Sr!Sr"Sr#\S4Sjr$Sr%Sr&Sr'S r(S!r)S"r*S�S$jr+S%r,S&r-S'r.S(r/S)r0S*r1S+r2S,r3S-r4S.r5S/r6S0r7S1r8S2r9S3r:S4r;S5r<S6r=S7r>S8r?S9r@S:rA\B"S;S<S=S>5S?5rCS@rDSArESBrFSCrGSDrHSErISFrJSGrKSHrLSIrMSJrNSKrOSLrPSMrQSNrRSOrSSPrTSQrUSRrVSSrWSTrXSUrYSVrZSWr[SXr\SYr]SZr^S[r_S\r`S]raS^rbS_rcS`rdSareSbrfScrgSdrhSeriSfrjSgrkShrlSirmSjrnSkroSlrpSmrqSnrrSorsSprtSqruSrrv\wR�\wR�"Ss5St55rzSur{Svr|\wR�Sw5r}Sxr~SyrSzr�S{r�S|r�S}r�S~r�Sr�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�\�GR"\�S#LS�5S�5r�S�r�S�r�S�r�S�r�S�S�jr�S�r�S�r�S�r�S�r�S�r�S�r�SS�\�S�-4S�jr�S�r�S�r�S�r�\�GR"\wGRDS�5S�5r�S�r�S�r�S�r�g#)��AbstractPickleTestsi�Fc��gr'r(r7s r �setUp�AbstractPickleTests.setUp����r"c��[GHInURSUS9 URS:aUS:aURS5 [	S5nURX!5nUR
U5nURX$5 SSS5 URSUS9 SnURX!5nUR
U5nURX$5 SSS5 URS	US9 URS:aURS
5 [SW5nURX!5nUR
U5nURX$5 SSS5 GML g!,(df   N�=f!,(df   N�=f!,(df   GM�=f)N�myintr��r�rr��2int subclasses are not interoperable with Python 2r��tuple)rr(�initarg�5"classic" classes are not interoperable with Python 2r)	r�r��
py_versionr�rur�r�r�ry�r2r�r*r=r�s     r �	test_misc�AbstractPickleTests.test_misc�s9���Y�E����g�U��3��?�?�V�+���	��M�M�"V�W��!�H���J�J�q�(���J�J�q�M���#�#�A�)�
4����g�U��3����J�J�q�(���J�J�q�M���#�#�A�)�	4����i�u��5��?�?�V�+��M�M�"Y�Z��A�q�M���J�J�q�(���J�J�q�M���#�#�A�)�
6�5��3�3��4�3��6�5�s%�A&E�6E'�'A!E8�
E$	�'
E5	�8
F	c���URS:aURS5 URn[H6nUR	X5nURU5nUR
X5 M8 g�Nrvrz)r{r�r�r�r�r�r�)r2r�r�r=rs     r �test_roundtrip_equality�+AbstractPickleTests.test_roundtrip_equalitysW���?�?�V�#��M�M�Q�R��>�>���E��
�
�8�+�A��*�*�Q�-�C�����.�r"c���SSKJn SSKJn S[4S[
44HOup4UR
URU5nU"5nU"XVS9 UR5nURXG5 MQ g)Nr)�StringIO��disr)�out)
r<r�rr��	DATA0_DIS�	DATA1_DISr�r�rOr�)r2r�r�r�r�r=�filelikers        r �dont_test_disassembly�)AbstractPickleTests.dont_test_disassembly$s`���#� !�9�~��9�~�=�O�E��
�
�4�>�>�5�1�A��z�H��� ��#�#�%�C����X�+� >r"rc�R�U"5nURU5 [U[RS-5HnnUR	XE5nURU5nUR
Xq5 U"U5nUR[U5S5 URUSU5 Mp g�Nrr)
r�r!rr<r�r��assertIsInstancer��lenr�)	r2r��aslist�minprotocol�lr�r=r*r�s	         r �_test_recursive_list�(AbstractPickleTests._test_recursive_list/s����E��	������;��(?�(?�!�(C�D�E��
�
�1�$�A��
�
�1�
�A��!�!�!�)��q�	�A����S��V�Q�'��M�M�!�A�$��"�
Er"c�.�UR[5 gr')r�r�r7s r �test_recursive_list�'AbstractPickleTests.test_recursive_list;����!�!�$�'r"c�,�UR[SS9 g�Nr��r�)r�rr7s r �test_recursive_list_subclass�0AbstractPickleTests.test_recursive_list_subclass>����!�!�&�a�!�8r"c�.�UR[SS9 g)Nc��UR$r'�r�r)s r �<lambda>�>AbstractPickleTests.test_recursive_list_like.<locals>.<lambda>Bs��A�G�Gr"�r�)r�r�r7s r �test_recursive_list_like�,AbstractPickleTests.test_recursive_list_likeAs���!�!�'�2C�!�Dr"c�d�U"54nUSRU5 [U[RS-5H�nUR	XE5nURU5nUR
U[5 UR[U5S5 UR
USU5 U"US5nUR[U5S5 URUSU5 M� Uun[U[RS-5H�nUR	XE5nURU5nUR
Xq5 U"U5nUR[U5S5 UR
US[5 UR[US5S5 URUSSU5 M� grZ)r�r!rr<r�r�r�rxr�r�r�)	r2r�r�r�rer�r=r*r�s	         r �_test_recursive_tuple_and_list�2AbstractPickleTests._test_recursive_tuple_and_listDsk��
�U�H��	�!����A���;��(?�(?�!�(C�D�E��
�
�1�$�A��
�
�1�
�A��!�!�!�U�+����S��V�Q�'��!�!�!�A�$��,��q��t��A����S��V�Q�'��M�M�!�A�$��"�E�����;��(?�(?�!�(C�D�E��
�
�1�$�A��
�
�1�
�A��!�!�!�)��q�	�A����S��V�Q�'��!�!�!�A�$��.����S��1��Y��*��M�M�!�A�$�q�'�1�%�Er"c�.�UR[5 gr')r�r�r7s r �test_recursive_tuple_and_list�1AbstractPickleTests.test_recursive_tuple_and_list^����+�+�D�1r"c�,�UR[SS9 gr�)r�rr7s r �&test_recursive_tuple_and_list_subclass�:AbstractPickleTests.test_recursive_tuple_and_list_subclassa����+�+�F��+�Br"c�.�UR[SS9 g)Nc��UR$r'r�r)s r r��HAbstractPickleTests.test_recursive_tuple_and_list_like.<locals>.<lambda>es��a�g�gr"r�)r�r�r7s r �"test_recursive_tuple_and_list_like�6AbstractPickleTests.test_recursive_tuple_and_list_likeds���+�+�G�<M�+�Nr"c�V�U"5nXDS'[U[RS-5H}nURXE5nUR	U5nURXq5 U"U5nUR
[UR55S/5 URUSU5 M g�Nr)
r!rr<r�r�r�r�r�r#r��	r2r��asdictr��dr�r=r*r�s	         r �_test_recursive_dict�(AbstractPickleTests._test_recursive_dictgs����E���!���;��(?�(?�!�(C�D�E��
�
�1�$�A��
�
�1�
�A��!�!�!�)��q�	�A����T�!�&�&�(�^�a�S�1��M�M�!�A�$��"�
Er"c�.�UR[5 gr')r�rur7s r �test_recursive_dict�'AbstractPickleTests.test_recursive_dictsr�r"c�,�UR[SS9 gr�)r��MyDictr7s r �test_recursive_dict_subclass�0AbstractPickleTests.test_recursive_dict_subclassvr�r"c�.�UR[SS9 g)Nc��UR$r'��tabler)s r r��>AbstractPickleTests.test_recursive_dict_like.<locals>.<lambda>zs��a�g�gr"�r�)r�r�r7s r �test_recursive_dict_like�,AbstractPickleTests.test_recursive_dict_likeys���!�!�)�4E�!�Fr"c�N�U"54nXDSS'[U[RS-5H�nURXE5nUR	U5nURU[5 UR[U5S5 URUSU5 U"US5nUR[U5S/5 URUSU5 M� Uun[U[RS-5H�nURXE5nUR	U5nURXq5 U"U5nUR[U5S/5 URUS[5 UR[US5S5 URUSSU5 M� grZ)r!rr<r�r�r�rxr�r�r�r��	r2r�r�r�rer�r=r*r�s	         r �_test_recursive_tuple_and_dict�2AbstractPickleTests._test_recursive_tuple_and_dict|sk��
�U�H���!��Q���;��(?�(?�!�(C�D�E��
�
�1�$�A��
�
�1�
�A��!�!�!�U�+����S��V�Q�'��!�!�!�A�$��,��q��t��A����T�!�W�q�c�*��M�M�!�A�$��"�E�����;��(?�(?�!�(C�D�E��
�
�1�$�A��
�
�1�
�A��!�!�!�)��q�	�A����T�!�W�q�c�*��!�!�!�A�$��.����S��1��Y��*��M�M�!�A�$�q�'�1�%�Er"c�.�UR[5 gr')r�rur7s r �test_recursive_tuple_and_dict�1AbstractPickleTests.test_recursive_tuple_and_dict�r�r"c�,�UR[SS9 gr�)r�r�r7s r �&test_recursive_tuple_and_dict_subclass�:AbstractPickleTests.test_recursive_tuple_and_dict_subclass�r�r"c�.�UR[SS9 g)Nc��UR$r'r�r)s r r��HAbstractPickleTests.test_recursive_tuple_and_dict_like.<locals>.<lambda>�s����r"r�)r�r�r7s r �"test_recursive_tuple_and_dict_like�6AbstractPickleTests.test_recursive_tuple_and_dict_like�s���+�+�I�>O�+�Pr"c�
�U"5nSU[U5'[U[RS-5H�nUR	XE5nURU5nUR
Xq5 U"U5nUR[UR55S5 UR
[UR55S[5 UR[UR55SRU5 M� gr�)
�Kr!rr<r�r�r�r�r�r#r�r�rr�s	         r �_test_recursive_dict_key�,AbstractPickleTests._test_recursive_dict_key�s���
�E����!�A�$���;��(?�(?�!�(C�D�E��
�
�1�$�A��
�
�1�
�A��!�!�!�)��q�	�A����S�����]�A�.��!�!�$�q�v�v�x�.��"3�Q�7��M�M�$�q�v�v�x�.��+�1�1�1�5�Er"c�.�UR[5 gr')r�rur7s r �test_recursive_dict_key�+AbstractPickleTests.test_recursive_dict_key�s���%�%�d�+r"c�,�UR[SS9 gr�)r�r�r7s r � test_recursive_dict_subclass_key�4AbstractPickleTests.test_recursive_dict_subclass_key�s���%�%�f�!�%�<r"c�.�UR[SS9 g)Nc��UR$r'r�r)s r r��BAbstractPickleTests.test_recursive_dict_like_key.<locals>.<lambda>�s��!�'�'r"r�)r�r�r7s r �test_recursive_dict_like_key�0AbstractPickleTests.test_recursive_dict_like_key�s���%�%�i�8I�%�Jr"c�4�U"54nSUS[U5'[U[RS-5H�nUR	XE5nURU5nUR
U[5 UR[U5S5 UR
USU5 U"US5nUR[U5S5 UR
[UR55S[5 UR[UR55SRU5 M� Uun[U[RS-5H�nUR	XE5nURU5nUR
Xq5 U"U5nUR[U5S5 UR
[UR55S[5 UR[UR55SRSU5 M� gr�)r�r!rr<r�r�r�rxr�r�r�r#r�rr�s	         r �"_test_recursive_tuple_and_dict_key�6AbstractPickleTests._test_recursive_tuple_and_dict_key�s����U�H����!��Q�q�T�
��;��(?�(?�!�(C�D�E��
�
�1�$�A��
�
�1�
�A��!�!�!�U�+����S��V�Q�'��!�!�!�A�$��,��q��t��A����S��V�Q�'��!�!�$�q�v�v�x�.��"3�Q�7��M�M�$�q�v�v�x�.��+�1�1�1�5�E�����;��(?�(?�!�(C�D�E��
�
�1�$�A��
�
�1�
�A��!�!�!�)��q�	�A����S��V�Q�'��!�!�$�q�v�v�x�.��"3�Q�7��M�M�$�q�v�v�x�.��+�1�1�!�4�a�8�Er"c�.�UR[5 gr')r�rur7s r �!test_recursive_tuple_and_dict_key�5AbstractPickleTests.test_recursive_tuple_and_dict_key�s���/�/��5r"c�,�UR[SS9 gr�)r�r�r7s r �*test_recursive_tuple_and_dict_subclass_key�>AbstractPickleTests.test_recursive_tuple_and_dict_subclass_key�s���/�/��A�/�Fr"c�.�UR[SS9 g)Nc��UR$r'r�r)s r r��LAbstractPickleTests.test_recursive_tuple_and_dict_like_key.<locals>.<lambda>�s��A�G�Gr"r�)r�r�r7s r �&test_recursive_tuple_and_dict_like_key�:AbstractPickleTests.test_recursive_tuple_and_dict_like_key�s���/�/�	�BS�/�Tr"c��URS:aURS5 [5nUR[	U55 [S[RS-5H�nURX5nURU5nURU[5 UR[U5S5 UR[U5S[5 UR[U5SRU5 M� Uun[S[RS-5H�nURX5nURU5nURU[5 URUR[5 UR[UR5S5 UR[UR5SU5 M� g)N�r�r��not supported in Python < 3.4r�rr)r{r�r�addr�r!rr<r�r�r�r�r�r�r�r�r2r�r�r=r*s     r �test_recursive_set�&AbstractPickleTests.test_recursive_set�sW���?�?�V�#��M�M�9�:��E��	���a��d���1�f�5�5��9�:�E��
�
�1�$�A��
�
�1�
�A��!�!�!�S�)����S��V�Q�'��!�!�$�q�'�!�*�a�0��M�M�$�q�'�!�*�*�*�A�.�
;�����1�f�5�5��9�:�E��
�
�1�$�A��
�
�1�
�A��!�!�!�Q�'��!�!�!�'�'�3�/����S����\�1�-��M�M�$�q�w�w�-��*�A�.�
;r"c�p�URS:aURS5 [5nXl[H{nURX5nUR
U5nURU[5 UR[U5[U55 URURU5 M} gr�)r{r��Object�attrr�r�r�r�r��dirr�)r2�ir�r=r*s     r �test_recursive_inst�'AbstractPickleTests.test_recursive_inst�s����?�?�V�#��M�M�Q�R��H�����E��
�
�1�$�A��
�
�1�
�A��!�!�!�V�,����S��V�S��V�,��M�M�!�&�&�!�$�r"c�T�URS:aURS5 /nSU0n[5nX#lUR	U5 [
H�nUR
X5nURU5nURU[5 UR[U5S5 UR[US5[U55 UR[USRR55S/5 URUSRSU5 M� g)Nrvrzrr)r{r�rrr�r�r�r�r�r�r�r�rr#r�)r2r�r�rr�r=r*s       r �test_recursive_multi�(AbstractPickleTests.test_recursive_multi	s����?�?�V�#��M�M�Q�R���
�q�E���H����	������E��
�
�1�$�A��
�
�1�
�A��!�!�!�T�*����S��V�Q�'����S��1��Y��A��/����T�!�A�$�)�)�.�.�"2�3�a�S�9��M�M�!�A�$�)�)�A�,��*�r"Nc��URS:aURS5 [5nU"U/5Ul[	UR5nURS5 [H�nURUS9 URX55nURU5nURURU5 UR[UR5S5 UR[UR5S[5 UR[UR5SU5 SSS5 M� SSS5 URnURURSUR35 URS:aUcURS	5 [H�nURUS9 URS:aXR:aURS
US35 URX55nURU5nURXt5 UR[U5S5 UR[U5S[5 UR[U5SRU5 SSS5 M� SSS5 g!,(df   GM9=f!,(df   GNm=f!,(df   GM=f!,(df   g=f)Nrvrzzobj -> {t.__name__} -> objr�rrz -> obj -> r�r�zrequires protocol z in Python < 3.4)r{r�rrrjr�r�r�r�r�r�r�r�r�rD)r2�factory�oldminproto�orer�r=r*s        r �#_test_recursive_collection_and_inst�7AbstractPickleTests._test_recursive_collection_and_inst	s���?�?�V�#��M�M�Q�R�
�H���!���������L��
�\�\�6�
7�"���\�\��\�.��
�
�1�,�A��
�
�1�
�A��)�)�!�&�&�!�4��$�$�S����[�!�4��)�)�$�q�v�v�,�q�/�6�B��M�M�$�q�v�v�,�q�/�1�5�
/�.�#�8�
�F�F��
�\�\�Q�Z�Z�L��A�J�J�<�@�
A�����'�K�,?��
�
�=�>�"���\�\��\�.�����/�E�4G��
�
�(:�;�-�GW�&X�Y��
�
�1�,�A��
�
�1�
�A��)�)�!�/��$�$�S��V�Q�/��)�)�$�q�'�!�*�f�=��M�M�$�q�'�!�*�/�/�1�5�/�.�#�B�
A�/�.��8�
7��"/�.��	B�
A�sJ� J#�9B8J�1J#�;=K�8CJ5�;K�
J �	J#�#
J2�5
K�?	K�
Kc�,�UR[SS9 g�Nr�r
)rr�r7s r �test_recursive_list_and_inst�0AbstractPickleTests.test_recursive_list_and_inst4	s���0�0��1�0�Er"c�,�UR[SS9 gr)rrxr7s r �test_recursive_tuple_and_inst�1AbstractPickleTests.test_recursive_tuple_and_inst7	s���0�0��A�0�Fr"c�@�UR[RSS9 gr)rrur�r7s r �test_recursive_dict_and_inst�0AbstractPickleTests.test_recursive_dict_and_inst:	s���0�0����A�0�Nr"c�.�UR[5 gr')rrr7s r �test_recursive_set_and_inst�/AbstractPickleTests.test_recursive_set_and_inst=	s���0�0��5r"c�.�UR[5 gr')rrr7s r �!test_recursive_frozenset_and_inst�5AbstractPickleTests.test_recursive_frozenset_and_inst@	s���0�0��;r"c�,�UR[SS9 g�Nr�r)rrr7s r �%test_recursive_list_subclass_and_inst�9AbstractPickleTests.test_recursive_list_subclass_and_instC	s���0�0��Q�0�Gr"c�.�UR[5 gr')r�MyTupler7s r �&test_recursive_tuple_subclass_and_inst�:AbstractPickleTests.test_recursive_tuple_subclass_and_instF	s���0�0��9r"c�@�UR[RSS9 gr#)rr�r�r7s r �%test_recursive_dict_subclass_and_inst�9AbstractPickleTests.test_recursive_dict_subclass_and_instI	s���0�0����a�0�Pr"c�.�UR[5 gr')r�MySetr7s r �$test_recursive_set_subclass_and_inst�8AbstractPickleTests.test_recursive_set_subclass_and_instL	s���0�0��7r"c�.�UR[5 gr')r�MyFrozenSetr7s r �*test_recursive_frozenset_subclass_and_inst�>AbstractPickleTests.test_recursive_frozenset_subclass_and_instO	s���0�0��=r"c���[5nXl[HWnURX5nUR	U5nURU[5 UR
URU5 MY gr')r�r�r�r�r�r�r�r�s     r �test_recursive_inst_state�-AbstractPickleTests.test_recursive_inst_stateR	sU���K�����E��
�
�1�$�A��
�
�1�
�A��!�!�!�Y�/��M�M�!�'�'�1�%�	r"c��[54nXSl[H�nURX5nUR	U5nURU[5 UR[U5S5 URUS[5 URUSRU5 M� Uun[H�nURX5nUR	U5nURU[5 URUR[5 UR[UR5S5 URURSU5 M� grZ)
r�r�r�r�r�r�rxr�r�r�)r2rer�r=r*s     r �#test_recursive_tuple_and_inst_state�7AbstractPickleTests.test_recursive_tuple_and_inst_state\	s��
�[�N���!��
��E��
�
�1�$�A��
�
�1�
�A��!�!�!�U�+����S��V�Q�'��!�!�!�A�$�	�2��M�M�!�A�$�*�*�a�(�
�����E��
�
�1�$�A��
�
�1�
�A��!�!�!�Y�/��!�!�!�'�'�5�1����S����\�1�-��M�M�!�'�'�!�*�a�(�
r"c��/SQn[H?nUH6nURX25nURU5nURX55 M8 MA g)N)rGz<\u>u<\ሴ>z<
>z<\>u<\𒍅>u<�>�r�r�r�r�)r2�endcasesr��ur��u2s      r �test_unicode� AbstractPickleTests.test_unicoder	sH�� ���E����J�J�q�(���Z�Z��]���#�#�A�*��r"c��Sn[H6nURX5nURU5nURX5 M8 g)Nu𒍅r<)r2rer�r�rws     r �test_unicode_high_plane�+AbstractPickleTests.test_unicode_high_plane}	s:�����E��
�
�1�$�A����A��B�����&�r"c���URS:aURS5 [HCnSH:nURX"4U5nUR	U5upEURXE5 M< ME g)Nrvznot supported in Python < 3.0)rG�xyzzxyz
zx\yzux¡yz
)r{r�r�r�r�r�)r2r�r=r��s1�s2s      r �test_unicode_memoization�,AbstractPickleTests.test_unicode_memoization�	s\���?�?�V�#��M�M�9�:��E�=���J�J��v�u�-�����A�����
�
�b�%�>�r"c��[H�nSH4nURX!5nURX RU55 M6 [	S5Vs/sHn[U/5PM snH4nURX!5nURX RU55 M6 [	S5Vs/sHn[XD/5PM snH4nURX!5nURX RU55 M6 M� gs snfs snf)N�r"�xyzs,xyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyz�)r�r�r�r�r!r2)r2r�r=r�rs     r �
test_bytes�AbstractPickleTests.test_bytes�	s����E�,���J�J�q�(���#�#�A�z�z�!�}�5�-�+0��*�5�*�Q�e�Q�C�j�*�5���J�J�q�(���#�#�A�z�z�!�}�5�6�.3�3�Z�8�Z��e�Q�F�m�Z�8���J�J�q�(���#�#�A�z�z�!�}�5�9���6��9s�D�/D
c
��[/nURS:�a
U[/-
n[H�nUH�nSH�nU"U5nURS:�aXU4OUR	54S-nURX#USS9 UR
XU4U5nURU5up�URX�5 URXhU	45 SSS5 U"U5n
URX#USS9 UR
XZ4U5nURX`RU55 SSS5 M� M� M� g!,(df   Np=f!,(df   GM=f)Nr�rLrvr�F�r��
array_typer=�independentT)
r2r{�
ZeroCopyBytesr�rr�r�r�r�r�)r2�array_typesr�rSr=r�r�r�r*r��b2s           r �test_bytes_memoization�*AbstractPickleTests.test_bytes_memoization�	s&���g���?�?�f�$��M�?�*�K��E�)�
�0�A�"�1�
�A�)-���F�)B��v�����
�VW��H����E�A�[`��a� �J�J��v�u�5��#�z�z�!�}����
�
�a�+��+�+�H�!�f�=�	b�$�A��B����E�A�[_��`� �J�J��w��6���+�+�H�j�j��m�D�a�`�1�*��
b�a��a�`�s�5AD*	�!4D;	�*
D8
�;
E
c�h�[GH'nSGHn[U5nURX15nURU5nUR	XS5 URX55 US::a=UR
SU5 UR[[RU55 M�US:Xa=UR
SU5 UR[[RU55 M�US:XdM�URSU5 UR[[RU55 GM GM* g)NrLr�s	bytearrayr�r�)r�rmr�r�r�r�rb�
assertTruer!r�GLOBAL�STACK_GLOBAL�assertNotIn�
BYTEARRAY8)r2r�r=r�r��bbs      r �test_bytearray�"AbstractPickleTests.test_bytearray�	s����Y�E�,���a�L���J�J�q�(���Z�Z��]��� � ��'��#�#�A�*��A�:��M�M�,��2��O�O�$4�V�]�]�A�$F�G��a�Z��M�M�,��2��O�O�$4�V�5H�5H�!�$L�M��a�Z��$�$�\�1�5��O�O�$4�V�5F�5F��$J�K�-�r"c
���[/nURS:�a
U[/-
n[GH(nUGHnSGHnUR	X#USS9 U"U5nURXU4U5nUR
U5upxURXx5 SSS5 UR	X#USS9 U"U5U"U5p�URX�5 URX�4U5nUR
U5up�URX�5 URX�5 URX�5 URX�5 URX�5 SSS5 GM GM  GM+ g!,(df   N�=f!,(df   GMC=f)Nr�rLFrRT)
rmr{�ZeroCopyBytearrayr�r�r�r�r�r�r�)
r2rVr�rSr=r�r��b1rW�b1a�b2a�b1b�b2bs
             r �test_bytearray_memoization�.AbstractPickleTests.test_bytearray_memoization�	sJ�� �k���?�?�f�$��-�.�.�K��Y�E�)�
�0�A����E�A�[`��a�&�q�M�� �J�J��v�u�5��!%���A�����
�
�b�-�	b����E�A�[_��`�#-�a�=�*�Q�-�S��(�(��2� �J�J��z�5�9��#'�:�:�a�=����(�(��2��(�(��2��+�+�C�5��(�(��2��+�+�C�5�a�`�1�*��b�a��a�`�s�	AE	�"BE'	�
E$
�'
E7
c���[Hin[RnU(dMU*U4H6nURX15nUR	U5nURX55 M8 US-	nU(aMMMk gr�)r�r��maxsizer�r�r�)r2r�r$r�r=�n2s      r �	test_ints�AbstractPickleTests.test_ints�	se���E����A��!�"#��Q��H��
�
�8�3�A����A��B��'�'��5�!(���F���!�r"c��[H`nSHWnSU-nUS-
X3S-4HAnXD*4H6nURXQ5nURU5nURXW5 M8 MC MY Mb [	SS5nX3S--
nX3*4HVnURUS5nURU5nUR[
U5[5 URXW5 MX g)N)r�i�i��ir�deadbeeffeedface�i@Br�)r�r�r�r��intr�rjr�)	r2r��nbits�nbase�nposr$rrr�s	         r �	test_long�AbstractPickleTests.test_long�	s����E�9���U�
��!�!�G�U�!�G�3�D�!�5�[��!%���A�!5��"�j�j��0���+�+�A�3�)�4�:���&��+��
�'�!�!�����A��
�
�1�a� �A��*�*�Q�-�C�
�M�M�$�s�)�S�)����Q�$�r"c���/SQnXVs/sHo"*PM sn-n[H?nUH6nURXC5nURU5nURXF5 M8 MA gs snf)N)ggg+�p�hg�Z��*)g_D��9g�������?g�?g��Q�	@g�m�"wp@g�W�T��Dgꌠ9Y>)Fr<)r2�test_valuesr*r�rrrs       r �
test_float�AbstractPickleTests.test_float
sf��A��!��$=��A�R��$=�=���E�$�����E�1���j�j��(���#�#�E�/�%���%>s�A$�LC_ALL�de_DE�fr_FRrGc�N�URURSS5SSS5 g)Ng333333�?rr�sF1.)r�r�r7s r �test_float_format�%AbstractPickleTests.test_float_format
s&��	
������C��+�A�a�0�&�9r"c�D�[H�nURUS9 URS:aUS:aURS5 [	5nURX!5nUR
U5nURU[5 SSS5 M� g!,(df   M�=f)Nr�r�r�z*str is not interoperable with Python < 3.4)	r�r�r{r��AAAr�r�r��REDUCE_A�r2r��instrNr.s     r �test_reduce�AbstractPickleTests.test_reduce
s{���E����E��*��?�?�V�+���	��M�M�"N�O��u�����D�0�����F�+��� � ���2�
+�*��*�*�s�A*B�
B	c���URS:aURS5 [HBn[SS5nUR	X!5nURU5nUR
X$5 MD g)Nrvrzrr�)r{r�r�ryr�r�r�r�s     r �test_getinitargs�$AbstractPickleTests.test_getinitargs
sZ���?�?�V�#��M�M�Q�R��E��1�a�=�D��Z�Z��,�F��Z�Z��'�F�����-�	r"c��UR[[5[5 [5n[HKnURX5nUR
U5nURURUR5 MM gr')r�rj�
use_metaclass�	metaclassr�r�r�r��r2r�r�r=r�s     r �test_metaclass�"AbstractPickleTests.test_metaclass$
s[������m�,�i�8��O���E��
�
�1�$�A��
�
�1�
�A����Q�[�[�!�+�+�6�r"c�@�[S[45n[R"[[R
5 [HZnURX5nURU5nURX5 UR[U5[U55 M\ g)N�my_dynamic_class)rqr)r[rrgrrr�r�r�r�r�rjr�s     r �test_dynamic_class�&AbstractPickleTests.test_dynamic_class,
sp�� �!3�f�Y�?�����)�+=�+H�+H�I��E��
�
�1�$�A��
�
�1�
�A����Q�"��M�M�$�q�'�4��7�+�	r"c�:�SSKnSSKnUR5n[H�nUR	X45nURU5nUR
X65 URS:aMHUR"UR5nUR	X45nURU5nUR
X65 [US5(dM�UR"UR5nUR	X45nURU5nUR
X65 M� g)Nrr��statvfs)�timer��	localtimer�r�r�r�r{�stat�curdirr�r�)r2r�r�rer�r=r>s       r �test_structseq�"AbstractPickleTests.test_structseq5
s������N�N����E��
�
�1�$�A��
�
�1�
�A�����%�����'������	�	�"�A��
�
�1�$�A��
�
�1�
�A�����%��r�9�%�%��J�J�r�y�y�)���J�J�q�(���J�J�q�M���#�#�A�)�!r"c��URS:aURS5 [HPnURUS9 UR	SU5nURU5nUR
SU5 SSS5 MR g!,(df   Md=f)N�r�r��not supported in Python < 3.3r�.)r{r�r�r�r�r�r��r2r�r=r>s    r �
test_ellipsis�!AbstractPickleTests.test_ellipsisL
sm���?�?�V�#��M�M�9�:��E����E��*��J�J�s�E�*���J�J�q�M���
�
�c�1�%�+�*��*�*�s�6A=�=
B	c�.�URS:aURS5 [HXnURUS9 UR	[
U5nUR
U5nUR[
U5 SSS5 MZ g!,(df   Ml=f)Nr�r�r�)r{r�r�r�r�r�r�r�r�s    r �test_notimplemented�'AbstractPickleTests.test_notimplementedU
sm���?�?�V�#��M�M�9�:��E����E��*��J�J�~�u�5���J�J�q�M���
�
�n�a�0�+�*��*�*�s�>B�
B	c�j�URS:aURS5 SS[/nUHqn[U5n[HYnURURUS9 URX45nURU5nURX65 SSS5 M[ Ms g!,(df   Mq=f)Nr�r�.�rvr�)
r{r�r�rjr�r�rDr�r�r�)r2�
singletons�	singletonrer�r=r>s       r �test_singleton_types�(AbstractPickleTests.test_singleton_types^
s����?�?�V�#��M�M�9�:��C��0�
�#�I��Y��A�"���\�\�q�z�z��\�?��
�
�1�,�A��
�
�1�
�A��M�M�!�'�@�?�#�$�@�?�s�4B#�#
B2c��SSSS.n[RR5H�n[U[5(dM[U[5(aM1URU;aURXR:aM_[HXnURURUS9 URX#5nURURU5U5 SSS5 MZ M� g!,(df   Mp=f)Nrvr�r�)r2�BuiltinImporterrr�)r�r��valuesr�rj�
issubclassr�rDr{r�r�r�r�r��r2�	new_namesrer�r=s     r �test_builtin_types�&AbstractPickleTests.test_builtin_typesk
s����%��
�	�
�"�"�)�)�+�A��!�T�"�"�:�a��+G�+G��:�:��*�t����:�:�AV�/V��&�E����1�:�:�U��C� �J�J�q�0���
�
�d�j�j��m�Q�7�D�C�'�	,�
D�C�s�'3C+�+
C:c��0SS_SS_SS_SS_SS_SS_SS_S	S_S
S_SS_SS_S
S_SS_SS_SS_SS_SS_SSSSSSS.En[RR5GHWn[U[5(dM[U[5(dM2URU;aURXR:aM`[H�nURURUS9 URS:aUS:aURS5 URX#5nURU5nUS::a5[U[5(a U[LaUR!U[5 OCUS::a,[U["5(aUR!U["5 OUR!XR5 SSS5 M� GMZ g!,(df   GM=f)N�BlockingIOErrorr��BrokenPipeError�ChildProcessError�ConnectionError�ConnectionAbortedError�ConnectionRefusedError�ConnectionResetError�FileExistsError�FileNotFoundError�InterruptedError�IsADirectoryError�NotADirectoryError�PermissionError�ProcessLookupError�TimeoutError�RecursionError�r�r��StopAsyncIteration�r�r��r�r�)r��)r��
)r��EncodingWarning�BaseExceptionGroup�ExceptionGroup�_IncompleteInputError�PythonFinalizationErrorr�r�z9exception classes are not interoperable with Python < 3.3r�)r�r�r�r�rjr�r�rDr{r�r�r�r�r��OSErrorr�r��ImportError)r2r�rer�r=r>s      r �test_builtin_exceptions�+AbstractPickleTests.test_builtin_exceptionsz
s���
��v�
��v�
�
 ��
�
�v�	
�

%�f�
�
%�f�

�
#�F�
�
�v�
�
 ��
�
��
�
 ��
�
!�&�
�
�v�
�
!�&�
�
�F�
� 
�f�!
�"
!�&�#
�$$*�&�")�%�%,�'.�/
�	�2�"�"�)�)�+�A��!�T�"�"�z�!�]�'C�'C��:�:��*�t����:�:�AV�/V��&�E����1�:�:�U��C��?�?�V�3���	� �M�M�*e�f� �J�J�q�0�� �J�J�q�M�� �A�:�*�Q��*@�*@�Q�o�E]� �M�M�!�W�5�"�a�Z�J�q�+�,F�,F� �M�M�!�[�9� �M�M�!�/�D�C�'�	,�
D�C�s
� CF:�:
G
c���SSSSSSS.n[RR5H�n[U[R
5(dM$URU;aURXR:aMR[HXnURURUS9 URX#5nURURU5U5 SSS5 MZ M� g!,(df   Mp=f)Nrv�r�r�r�)�__build_class__r�exec�
breakpoint�aiter�anextr�)
r�r�r�r�r��BuiltinFunctionTyperDr{r�r�r�r�r�r�s     r �test_builtin_functions�*AbstractPickleTests.test_builtin_functions�
s���%��� ���

�	��"�"�)�)�+�A��!�U�6�6�7�7��:�:��*�t����:�:�AV�/V��&�E����1�:�:�U��C� �J�J�q�0���
�
�d�j�j��m�Q�7�D�C�'�	,�
D�C�s�3C!�!
C0c� �[H�nURSU5nUS:�a?[R[	U/5-nURUR
U55 MZUR[[RU5S5 M� g)Nr�r)	r�r�r�PROTOr2r[�
startswithr�r%)r2r�r��proto_headers    r �
test_proto�AbstractPickleTests.test_proto�
si���E��j�j��u�-�G���z�%�|�|�e�U�G�n�<������ 2� 2�<� @�A�� � ��f�l�l�G�!D�a�H�
r"c��URS:aURS5 [SS-n[R[R
-n[R[U/5-U-nURU5 URS5 g![a%nURS[U55 SnAgSnAff=f)N)r�rrz&no protocol validation in Python < 3.8r�rz0expected bad protocol number to raise ValueErrorzunsupported pickle protocol)
r{r�r�r�NONEr?r�r2r��failrrbr)r2�oob�
build_none�	badpickle�errs     r �test_bad_proto�"AbstractPickleTests.test_bad_proto�
s����?�?�V�#��M�M�B�C���m�a����[�[�6�;�;�.�
��L�L�5�#��<�/�*�<�	�	J��J�J�y�!�
�I�I�H�I���	C��M�M�7��S��B�B��	C�s�0B�
C�B=�=Cc���Sn[HcnURX5nURU5nURX5 UR	[[RU5US:�5 Me g)N��UJ^w,3�|	r�)r�r�r�r�r�r!r�LONG1�r2r*r�r=r�s     r �
test_long1�AbstractPickleTests.test_long1�
sZ��)���E��
�
�1�$�A��
�
�1�
�A�����%����-�f�l�l�A�>���
�K�	r"c���SS-n[HcnURX5nURU5nURX5 UR	[[RU5US:�5 Me g)Nr�rsr�)r�r�r�r�r�r!r�LONG4r�s     r �
test_long4�AbstractPickleTests.test_long4�
s_��)�e�4���E��
�
�1�$�A��
�
�1�
�A�����%����-�f�l�l�A�>���
�K�	r"c��0S[R_S[R_S[R_S[R_S[R_S[R_S[R_S[R_S	[R_S
[R_S[R_S[R_S
[R_S[R
_S[R_S[R_S[R_[R[R
[RS.EnSnSnSnSnSn[HvnX#XEU4HjnURX�5n	URU	5n
URX�5 U[US5[U54nUR[X�55 Ml Mx g)N)rr)rr)rr�)rr�)rr�)rr)rrre)rr��rr�)r�r�r�r)r�r�)r�r�)r�r�rv)r�r))r�r�r�r�r()r�rr�r�)rr�r�r�r�)r�TUPLE�EMPTY_TUPLE�TUPLE1�TUPLE2�TUPLE3r�r�r�r��minr�r[r!)r2�expected_opcoder�r�r�r�rcr�r*r=r�r�s            r �test_short_tuples�%AbstractPickleTests.test_short_tuples�
s����6�6�<�<��!�6�<�<��!�6�<�<��"�6�<�<��"�6�<�<�	�"�6�#5�#5�
�"�6�<�<��"�6�<�<��"�6�<�<��"�6�<�<��"�6�#5�#5��"�6�=�=��"�6�=�=��"�6�=�=�� "�6�<�<�!�$"�6�#5�#5�%�&"�6�=�=�'�($*�=�=�#)�=�=�#)�<�<�-��0
�����������E��1��]���J�J�q�(���J�J�q�M���#�#�A�)�*�3�u�a�=�#�a�&�+@�A����� 0�� =�>�#�r"c
�b�[R[R[R[R[R[R[R[R[R[R[R[RS.n[
HnnSHenUR
X25nURU5nURX5LX#XE45 U[US5U4nUR[Xd55 Mg Mp g)N))rN)rN)r�N)r�N)rT)rT)r�T)r�T)rF)rF)r�F)r�F)NFTr�)rr��INT�NEWTRUE�NEWFALSEr�r�r�r[rr!)r2rr�r*r=r�r�s       r �test_singletons�#AbstractPickleTests.test_singletonss���&,�k�k�&,�k�k�&,�k�k�&,�k�k�&,�j�j�&,�j�j�&,�n�n�&,�n�n�'-�z�z�'-�z�z�'-���'-������E�&���J�J�q�(���J�J�q�M��������1�(8�9�*�3�u�a�=�!�+;�<����� 0�� =�>�'�r"c��[/SQ5nSUlSUl[H6nUR	X5nURU5nUR
X5 M8 g�Nr�r��hello)r'r�r�r�r�r�r�r�s     r �test_newobj_tuple�%AbstractPickleTests.test_newobj_tuplesM���I����������E��
�
�1�$�A��
�
�1�
�A�����%�r"c��[/SQ5nSUlSUl[H6nUR	X5nURU5nUR
X5 M8 gr)rr�r�r�r�r�r�r�s     r �test_newobj_list�$AbstractPickleTests.test_newobj_list(sM���9����������E��
�
�1�$�A��
�
�1�
�A�����%�r"c���[GHPn[GHAnURXS9 URS:a'US:a!U[[
4;aUR
S5 SURs=::aS:a*O O'US:a!U[
[4;aUR
S5 URnU"UR5nSUl
URXA5nURU5nXX4U[U54nURXF5 URU"U5U"U5U5 URUR UR U5 SSS5 GMD GMS g!,(df   GM\=f)N�r�r�rvr�z:int and str subclasses are not interoperable with Python 2r��6str subclasses are not interoperable with Python < 3.4r�)r��	myclassesr�r{�MyInt�MyStrr��	MyUnicode�__base__�sampler�r�r�rjr�r�r�)r2r�r��Br*r=r��details        r �test_newobj_generic�'AbstractPickleTests.test_newobj_generic1s���Y�E��Y���\�\��\�3�����/�E�A�I�!��u�~�BU��
�
�&b�c�����9�6�9�e�a�i�A�RW�Yb�Qc�Lc��
�
�&^�_��
�
�A��!�(�(��A��A�E��
�
�1�,�A��
�
�1�
�A�#��a��a��9�F��'�'��-��$�$�Q�q�T�1�Q�4��8��$�$�Q�Z�Z����V�D�4�3���3�3�s�D&E�
E-c��[SSn[[[4HnUR	U5 M [
GH4nUGH)nUR
X4S9 URS:a'US:a!U[[4;aURS5 URnU"UR5nSUl
[R"U5nUR!Xs5nUR#U5n	UR%['U	5['U55 X4XVU	['U	54n
UR%U"U5U"U	5U
5 UR%UR(U	R(U
5 SSS5 GM, GM7 g!,(df   GMD=f)Nrr�r�rr�)rr�MyLongr'rnr�r�r{rrr�rrr��weakref�proxyr�r�r�rjr�)r2�classesr�r�r�r r*r�r=r�r!s           r �test_newobj_proxies�'AbstractPickleTests.test_newobj_proxiesCs*���A�,�����)�A��N�N�1��*��Y�E����\�\��\�3�����/�E�A�I�!��y�GY�BY��
�
�&^�_��
�
�A��!�(�(��A��A�E��
�
�a�(�A��
�
�1�,�A��
�
�1�
�A��$�$�T�!�W�d�1�g�6�#��a��a��9�F��$�$�Q�q�T�1�Q�4��8��$�$�Q�Z�Z����V�D�4�3���3�3�s
�DE3�3
Fc���[H�nURUS9 URS:aUS:aURS5 [	S5nSUlUR
X!5nURU5nUR[U5[5 UR[U5S5 URUR
S5 SSS5 M� g!,(df   M�=f)Nr�rvr�rwrr�)r�r�r{r��
MyIntWithNew2r�r�r�r�rjr�rvr|s     r �test_newobj_overridden_new�.AbstractPickleTests.test_newobj_overridden_newYs����E����E��*��?�?�V�+���	��M�M�"V�W�!�!�$������J�J�q�(���J�J�q�M���
�
�d�1�g�}�5�� � ��Q���+�� � �����+�+�*��*�*�s�B2C�
C'	c�j�URS:aURS5 [R[5nUR	US5n[
R"[SS5 UR[[R4URU5 SSS5 g!,(df   g=f)Nr�r�r��SimpleNewObjr�)
r{r�r0r�r�r�	swap_attrrr�r�rrVr�)r2rr�s   r �test_newobj_not_class�)AbstractPickleTests.test_newobj_not_classgs{���?�?�V�#��M�M�9�:�� � ��.���J�J�q�!���
�
�
�|�^�R�
@����y�&�*@�*@�A�4�:�:�q�Q�A�
@�
@�s�)2B$�$
B2c�6�[U5n[R"[RSU5 [/SQ5nSUlSUlURUS5nUR[RR5U5 URSU5 UR[X%55 URU5nURXF5 URUS5nUR[RR5U5 URSU5 UR[X'5S[!U55 URU5nURXF5 UR#5 g!UR#5 f=f)	Nrr�r�rrsMyListr�T)rWr[rbrrEr�r�r�rbr�assertFalser!r�r�r^r��reprrd)r2�extcode�opcodercr*rGr�rHs        r �produce_global_ext�&AbstractPickleTests.produce_global_extts8���7�#��	��!�!�&�"3�"3�X�w�G��y�!�A��A�E��A�E����A�q�!�B��M�M�&�+�+�2�2�4�b�9��M�M�)�R�(����-�f�9�:��
�
�2��A�����%����A�q�!�B����V�.�.�5�5�7��<����Y��+����-�f�9�4��b��J��
�
�2��A�����%�
�I�I�K��A�I�I�K�s�E(F�Fc��URS[R5 URS[R5 g)Nrr�)r9r�EXT1r7s r �test_global_ext1�$AbstractPickleTests.test_global_ext1�s*�����
�F�K�K�8����
�F�K�K�8r"c���URS[R5 URS[R5 URS[R5 g)NrNr�iͫ)r9r�EXT2r7s r �test_global_ext2�$AbstractPickleTests.test_global_ext2��>�����
�F�K�K�8����
�F�K�K�8����
�F�K�K�8r"c���URS[R5 URS[R5 URS[R5 g)N�r�i�ͫ)r9r�EXT4r7s r �test_global_ext4�$AbstractPickleTests.test_global_ext4�rCr"c�H�Sn[[U55n[HdnURX#5nUR	U5nURX%5 [
[RU5nURXcS:�5 Mf Sn[[U55n[H~nURX#5nUR	U5nURX%5 [
[RU5nUS:XaURUS5 MjURUS:�5 M� g�Nr�r��	r�)r�r!r�r�r�r�r%r�APPENDSr�r[)r2r$r*r�r=r��num_appendss       r �test_list_chunking�&AbstractPickleTests.test_list_chunking�s�������q��N���E��
�
�1�$�A��
�
�1�
�A�����%�&�v�~�~�q�9�K����[�!�)�4��
����q��N���E��
�
�1�$�A��
�
�1�
�A�����%�&�v�~�~�q�9�K���z�� � ��a�0�����q� 0�1�r"c��Sn[R[U55n[HznUR	X#5nURU[5 URU5nURX%5 [[RU5nURXcS:�5 M| Sn[R[U55n[H~nUR	X#5nURU5nURX%5 [[RU5nUS:XaURUS5 MjURUS:�5 M� grJ)rur�r!r�r�r�rr�r�r%r�SETITEMSr�r[)r2r$r*r�r=r��num_setitemss       r �test_dict_chunking�&AbstractPickleTests.test_dict_chunking�s�����M�M�%��(�#���E��
�
�1�$�A��!�!�!�[�1��
�
�1�
�A�����%�'�����;�L����\�1�9�5�
�
���M�M�%��(�#���E��
�
�1�$�A��
�
�1�
�A�����%�'�����;�L���z�� � ��q�1������ 1�2�r"c�t�Sn[[U55n[H|nURX#5nUR	U5nURX%5 [
[RU5nUS:aURUS5 MjURUS5 M~ Sn[[U55n[H|nURX#5nUR	U5nURX%5 [
[RU5nUS:aURUS5 MjURUS5 M~ g)Nr�r�rrrKr�)rr!r�r�r�r�r%r�ADDITEMSr��assertGreaterEqual)r2r$r*r�r=r��num_additemss       r �test_set_chunking�%AbstractPickleTests.test_set_chunking�s�������a��M���E��
�
�1�$�A��
�
�1�
�A�����%�'�����;�L��q�y�� � ��q�1�� � ��q�1��
����a��M���E��
�
�1�$�A��
�
�1�
�A�����%�'�����;�L��q�y�� � ��q�1��'�'��a�8�r"c���[R[S5nSUl[GH0nUR	US9 UR
S:aUS:aUR
S5 URX5nUS:a6UR
S:�aURS	U5 O%URS
U5 OURSU5 UR
S:aUS
:XdVUR[[RU5SU:*5 UR[[RU55 URU5nUR!X5 SSS5 GM3 g!,(df   GMF=f)N���r�rvr�rwrr��
I64206�64206�M�r�r�)r0r�r�r�r�r{r�r�rbr�r!r�NEWOBJr5�	NEWOBJ_EXr�r�r�s     r �test_simple_newobj�&AbstractPickleTests.test_simple_newobj�s��� � ��v�6������Y�E����E��*��?�?�V�+���	��M�M�"V�W��J�J�q�(���1�9����&�0��
�
�k�1�5��
�
�h��2��M�M�,��2����&�0�U�a�Z��$�$�%5�f�m�m�Q�%G�%&�%�Z�1��$�$�%5�f�6F�6F��%J�K��J�J�q�M���#�#�A�)�!+�*��*�*�s�DE�
E.	c��[R[S5nSUl[GH�nUR	US9 UR
S:aUS:aUR
S5 URX5nUS:a6UR
S:�aURS	U5 OzURS
U5 OgUS:aURSU5 ONUS:a6UR
S:�aURS
U5 O%URSU5 OURSU5 UR
S:aUS:XdVUR[[RU5SU:*5 UR[[RU55 URU5nUR!X5 SSS5 GM� g!,(df   GM�=f)Nr\r]r�rvr�rwrr�r^r_r`r��	XFACEsUFACE��FACEr�)�
ComplexNewObjr�r�r�r�r{r�r�rbr�r!rrar5rbr�r�r�s     r �test_complex_newobj�'AbstractPickleTests.test_complex_newobj�s_���!�!�-��8������Y�E����E��*��?�?�V�+���	��M�M�"V�W��J�J�q�(���1�9����&�0��
�
�k�1�5��
�
�h��2��Q�Y��M�M�,��2��Q�Y����&�0��
�
�&>��B��
�
�l�A�6��M�M�/�1�5����&�0�U�a�Z��$�$�%5�f�m�m�Q�%G�%&�%�Z�1��$�$�%5�f�6F�6F��%J�K��J�J�q�M���#�#�A�)�/+�*��*�*�s�E*F3�3
G	c�\�URS:aURS5 [R[S5nSUl[
GHLnUR
US9 URS:aUS:aURS5 URX5nUS	:a6URS
:�aURSU5 OWURSU5 ODUS
:aURSU5 O+US:aURSU5 OURSU5 UR[[RU55 UR[[RU5SU:*5 URU5nUR!X5 SSS5 GMO g!,(df   GMb=f)Nr�r�r\r]r�r�r�z#requires protocol 4 in Python < 3.6rr�r^r_r�r`rfrg)r{r��ComplexNewObjExr�r�r�r�r�rbr5r!rrar�rbr�r�r�s     r �test_complex_newobj_ex�*AbstractPickleTests.test_complex_newobj_exsL���?�?�V�#��M�M�9�:��#�#�O�V�<������Y�E����E��*��?�?�V�+���	��M�M�"G�H��J�J�q�(���1�9����&�0��
�
�k�1�5��
�
�h��2��Q�Y��M�M�,��2��Q�Y��M�M�":�A�>��M�M�/�1�5�� � �!1�&�-�-��!C�D�� � �!1�&�2B�2B�A�!F�!"�e��-��J�J�q�M���#�#�A�)�'+�*��*�*�s
�D1F�
F+	c��[/SQ5nSUlSUlURUS5nUR	U5nURX5 g)Nr�r�rr�)�SlotListr�r�r�r�r�)r2r*r=r�s    r �test_newobj_list_slots�*AbstractPickleTests.test_newobj_list_slots2sE���Y����������J�J�q�!����J�J�q�M�����A�!r"c��[H�n[5nURURS5 UR	X!5nURURS5 URU5nURURS5 M� grZ)r��REX_oner��_reduce_calledr�r�r|s     r �'test_reduce_overrides_default_reduce_ex�;AbstractPickleTests.test_reduce_overrides_default_reduce_ex:sp���E��	�A����Q�-�-�q�1��
�
�1�$�A����Q�-�-�q�1��
�
�1�
�A����Q�-�-�q�1�
r"c��[H�n[5nURURS5 UR	X!5nURURU5 URU5nURURS5 M� gr')r��REX_twor��_protor�r�r|s     r �test_reduce_ex_called�)AbstractPickleTests.test_reduce_ex_calledCsj���E��	�A����Q�X�X�t�,��
�
�1�$�A����Q�X�X�u�-��
�
�1�
�A����Q�X�X�t�,�
r"c��[H�n[5nURURS5 UR	X!5nURURU5 URU5nURURS5 M� gr')r��	REX_threer�rzr�r�r|s     r �test_reduce_ex_overrides_reduce�3AbstractPickleTests.test_reduce_ex_overrides_reduceLsj���E���A����Q�X�X�t�,��
�
�1�$�A����Q�X�X�u�-��
�
�1�
�A����Q�X�X�t�,�
r"c��[H�n[5nURURS5 UR	X!5nURURU5 URU5nURURU5 M� gr')r��REX_fourr�rzr�r�r|s     r �test_reduce_ex_calls_base�-AbstractPickleTests.test_reduce_ex_calls_baseUsj���E��
�A����Q�X�X�t�,��
�
�1�$�A����Q�X�X�u�-��
�
�1�
�A����Q�X�X�u�-�
r"c��[H�n[5nURURS5 UR	X!5nURURS5 URU5nURURS5 M� grZ)r��REX_fiver�rur�r�r|s     r �test_reduce_calls_base�*AbstractPickleTests.test_reduce_calls_base^sp���E��
�A����Q�-�-�q�1��
�
�1�$�A����Q�-�-�q�1��
�
�1�
�A����Q�-�-�q�1�
r"c��[5nURU5nUR[5 UR	U5 SSS5 g!,(df   g=fr')�C_None_setstater�r�r�r�)r2r�r�s   r �test_pickle_setstate_None�-AbstractPickleTests.test_pickle_setstate_Nonegs<������J�J�q�M��
�
�
�y�
)��J�J�q�M�*�
)�
)�s�A�
Ac�`�S[S55n[SU55n[U5[U5[U5/n[HNnURUS9 UR	X45nURU5nUR
X65 SSS5 MP g!,(df   Mb=f)Nc3�># �UHnS[U5-v� M g7f)�aaaN�r)�.0rs  r �	<genexpr>�>AbstractPickleTests.test_many_puts_and_gets.<locals>.<genexpr>ps���3�
�1���A���
�s�rcc3�,# �UH
o/SQ4v� M g7f))r�r�r�Nr()r��ks  r r�r�qs���7�$�Q�i�.�$�s�r�)r!rur�r�r�r�r�)r2r#�
large_dictr�r�rNr.s       r �test_many_puts_and_gets�+AbstractPickleTests.test_many_puts_and_getsms���4��c�
�3���7�$�7�7�
��J���j�!1�4�
�3C�D���E����E��*����C�/�����F�+���#�#�C�0�+�*��*�*�s�4B�
B-	c�r�URS:aURS5 [H�n[5nSUlSUlUR
X!5nURU5n[UR5n[UR5n[XV5HupxURXx5 M M� g)Nrvrzr�r)r{r�r�r�r�r�r�r��sortedr��zipr�)	r2r�r*r=r��x_keys�y_keys�x_key�y_keys	         r �test_attribute_name_interning�1AbstractPickleTests.test_attribute_name_interningzs����?�?�V�#��M�M�Q�R��E���A��A�E��A�E��
�
�1�$�A��
�
�1�
�A��A�J�J�'�F��A�J�J�'�F� #�F� 3����
�
�e�+�!4�r"c���UR[S5S5nURU[5 UR[	S/5S5nURU[
5 g)Nr�r�r�)r�r!r�r r�	DATA_SET2rMs  r �test_pickle_to_2x�%AbstractPickleTests.test_pickle_to_2x�sN��
���E�!�H�a�(�������-����C���H�a�(�������+r"c�0�[H�nS[SS-[4nURX!5nUR	U5nUR[U5[U55 URS:aS[SS-[4nURXB5 M� g)Nrsxyixrv�xy)r�rr�r�r�r�r{)r2r�r�rNr.s     r �test_large_pickles�&AbstractPickleTests.test_large_pickles�s����E��s�E�Y�/��5�D��Z�Z��,�F��Z�Z��'�F����S��[�#�d�)�4�����'��3��	� 2�C�8�����V�*�r"c	���URS:aURS5 [H�nURUS9 [	S5Vs/sHo RSU-U5PM nn[
[[U55nUR[U5U5 US:�a2UH,nUR[[RU55 M. SSS5 M� gs snf!,(df   M�=f)Nr�r�r��Fr�)r{r�r�r�r!r�r��mapr�r�r�r5r!r�LONG)r2r�r$�pickles�sizesr�s      r �test_int_pickling_efficiency�0AbstractPickleTests.test_int_pickling_efficiency�s����?�?�V�#��M�M�9�:��E����E��*�<A�"�I�F�I�q�:�:�a��d�E�2�I��F��S��g�.�/��� � �����6��A�:�$���(�(�)9�&�+�+�q�)I�J�%�
+�*���F�+�*�s�C&�C!�&A.C&�!C&�&
C5	c��URX5nUR[X$55 URU5nUR	X5 gr')r�r[r!r�r�)r2r�r8r�r�r�s      r �_check_pickling_with_opcode�/AbstractPickleTests._check_pickling_with_opcode�s>���*�*�S�(�����(��9�:��J�J�w�'�	�����(r"c�`�[/SQ5n[H�nURUS9 US:Xa"URU[R
U5 OBURS:aURS5 URU[RU5 SSS5 M� g!,(df   M�=f)Nr�r�rrvznot supported in Python 2)	r�r�r�r�r�APPENDr{r�rLr�s   r �test_appends_on_non_lists�-AbstractPickleTests.test_appends_on_non_lists�s���i� ���E����E��*��A�:��4�4�S�&�-�-��O�����/��
�
�&A�B��4�4�S�&�.�.�%�P�
+�*��*�*�s�A+B�
B-	c���[SSSS.5n[HMnUS:Xa#URU[RU5 M,URU[R
U5 MO g)Nr�������r�r)r�r�r�r�SETITEMrQr�s   r �test_setitems_on_non_dicts�.AbstractPickleTests.test_setitems_on_non_dicts�sP���B�2�"�-�.���E���z��0�0��f�n�n�e�L��0�0��f�o�o�u�M�	r"r�rEc��S=p#1Skn[R"U5GHupVnUbURXr5 Xr:XaSnUbRURURS5 URU;a%UR[U5UR5 OrURS:Xd)URU;a=[U5UR:�a$Ub URXs-
UR5 SnOUcURS:waUnURS:XdM�URX`R5 US-U-nGM! [U5nUbURX'5 gUbURXs-
UR5 gg)z�
Check the arguments of FRAME opcodes in a protocol 4+ pickle.

Note that binary objects that are larger than FRAME_SIZE_TARGET are not
framed by default and are therefore considered a frame by themselves in
the following consistency check.
N>�BINBYTES�	BINBYTES8�
BINUNICODEr_�BINUNICODE8�FRAMEr��	)rr�assertLessEqual�assertNotEqualrvr��FRAME_SIZE_TARGET�
assertLess�FRAME_SIZE_MINrWr�)r2r��	frame_end�frameless_start�frameless_opcodesr�arg�poss        r �check_frame_opcodes�'AbstractPickleTests.check_frame_opcodes�sg��'+�*�	�:��'�.�.�w�7�L�B�S��$��$�$�S�4��#� $�I��$��#�#�B�G�G�W�5��7�7�/�/��(�(��S��4�3I�3I�J���G�G�w�&��W�W� 1�1���X�� 6� 6�6�&�2�����(=�(,�(;�(;�=�*.���$�,����G�1C�&)�O��w�w�'�!��'�'��-@�-@�A��!�G�c�M�	�98�<�'�l��� ����Y�,�
�
(��O�O�C�1�4�3F�3F�G�)r"�cpuc�Z�URS:aURS5 [[S55n[S[R
S-5H�nUR
US9 URX5nURU5nURX5 [U5[[RU5-nURUURS-5 URUURS-5 UR!U5 SSS5 M� g!,(df   M�=f)Nr�r�i��r�rr�r�)r{r�r�r!rr<r�r�r�r�r�r%r��
assertGreaterr�r�r�)r2r�r�r�r��bytes_per_frames      r �test_framing_many_objects�-AbstractPickleTests.test_framing_many_objects�s����?�?�V�#��M�M�9�:��5��<� ���1�f�5�5��9�:�E����E��*��*�*�S�0�� �J�J�w�/�	�� � ��0�#&�w�<�#/����g�#F�$G���"�"�?�#'�#9�#9�A�#=�?��$�$�_�%)�%;�%;�a�%?�A��(�(��1�+�*�;�*�*�s
�%B)D�
D*	c���URS:aURS5 Sn[S5Vs/sHo"/PM nnSU-/UQSU-PSU-Pn[S[RS	-5GH\nS
GHQnURXVS9 U(dUR
XE5nOg[US5(dSSS5 MI[R"5nURX�S
9n	XilU	RU5 UR5nURU5n
URUVs/sHn[!U5PM snU
Vs/sHn[!U5PM sn5 URXJ5 URS:�a=[#[R$U5nURUS	5 UR'U5 SSS5 GMT GM_ gs snfs snfs snf!,(df   GM{=f)Nr�r�ir��x�y�zr�r)FT)r��fastr��r�r�)r{r�r!rr<r�r�r�r<rMr�r�rarOr�r�r�r%r�r�)
r2�Nr�small_itemsr�r�r�r��bufr�r�r*�n_framess
             r �test_framing_large_objects�.AbstractPickleTests.test_framing_large_objects
s����?�?�V�#��M�M�9�:���$)�"�I�.�I�q�s�I��.��a�x�9�+�9�t�a�x�9��q��9���1�f�5�5��9�:�E�%���\�\��\�9��#'�*�*�S�"8�� '�t�Y�7�7�$�:�9�!�j�j�l��"&�,�,�s�,�"C��'+�����S�)�"%�,�,�.�� $�
�
�7� 3�I��$�$�c�%:�c��c�!�f�c�%:�6?�%@�i��c�!�f�i�%@�B��$�$�S�4����&�0�#/����g�#F���(�(��1�5��0�0��9�3:�9�&�;��/��(&;��%@�#:�9�s7�G�,G�=A+G�(G�=G�G�A%G�
G�
G/c	���URS:aURS5 S	SjnURnSn[[4GHn[U5Vs0sHoUU"U/5U-_M nn[S[RS-5H�nURXg5nU"U5n	UR[[RU	5S5 URX`RU	55 U"US5n
UR[[RU
5[[RU55 URX`RU
55 M� GM gs snf)
Nr�r�c�"�/nSn[R"U5H)upEnURS:XdMURU5 M+ [	5nSn[U5H%up�U(aU"U	5(aMXpX�-
nXc-nM' XpUS-
nU$)z+Remove frame opcodes from the given pickle.r�r�rN)rrrvr�rm�	enumerate)
r��
keep_frame�frame_starts�frame_opcode_sizer8�_r��	newpickle�last_frame_endrs
          r �
remove_frames�?AbstractPickleTests.test_optional_frames.<locals>.remove_frames6
s����L� !��"-�"4�"4�W�"=���3��;�;�'�)� �'�'��,�#>�"��I��N�#�L�1����*�Q�-�-���^�8�8�	�!$�!8��	2�

���1�1�I��r"�r�rrc��US-$rjr(�rs r r��:AbstractPickleTests.test_optional_frames.<locals>.<lambda>W
s��a�!�er"r')r{r�r�r2rmr!rr<r�r�r%r�r�r�)r2r��
frame_size�
num_frames�
bytes_typerr�r�r��frameless_pickle�some_frames_pickles           r �test_optional_frames�(AbstractPickleTests.test_optional_frames2
s&���?�?�V�#��M�M�9�:�	�&�+�+�
��
�!�)�,�J�<A�*�<M�N�<M�q�j�!��o�
�2�2�<M�C�N��q�&�"9�"9�A�"=�>���*�*�S�0��#0��#9� �� � ��f�l�l�<L�!M�q�Q�� � ��j�j�1A�&B�C�%2�7�O�%L�"�����V�\�\�;M� N� ,�V�\�\�7� C�E�� � ��j�j�1C�&D�E�?�-��Ns�E#c
���URS:aURS5 "SS5n[S[RS-5GH�n[[S55Vs/sH.n[
U5RS5US	-S
[
U504PM0 nnURSURS-S--5 U"5nURXR5RU5 UR5nURU5nURXt5 UR[!UR"5S5 A[$R&"5 URUR5U5 [!U5S-
UR-S-nUR)[!UR"5U5 UR+[!UR"5S
U-S-5 UR"V	s/sHn	[!U	5PM n
n	U
Vs/sHnX�R:�dMUPM nnU
Vs/sH"nSUs=:aUR:dMO M UPM$ n
nU
Vs/sHo�S::dM
UPM nnUH#nUR-US
UR-U
5 M% UR+[!U5[!U5[!U
5-S-U
5 GM� gs snfs sn	fs snfs snfs snf)Nr�r�c�*�\rSrSrSrSrSrSrSrg)�YAbstractPickleTests.test_framed_write_sizes_with_delayed_writer.<locals>.ChunkAccumulatoria
z2Accumulate pickler output in a list of raw chunks.c��/Ulgr'��chunksr7s r rS�bAbstractPickleTests.test_framed_write_sizes_with_delayed_writer.<locals>.ChunkAccumulator.__init__c
s	�� ��r"c�:�URRU5 gr')r�r�)r2�chunks  r rR�_AbstractPickleTests.test_framed_write_sizes_with_delayed_writer.<locals>.ChunkAccumulator.writee
s�����"�"�5�)r"c�8�SRUR5$)Nr")r�r�r7s r �concatenate_chunks�lAbstractPickleTests.test_framed_write_sizes_with_delayed_writer.<locals>.ChunkAccumulator.concatenate_chunksg
s���x�x����,�,r"r�N)	rDrErFrGrUrSrRrrHr(r"r �ChunkAccumulatorr�a
s��D�
!�
*�
-r"rr�rg��@rr�r�0123456789abcdefrur�r�r�)r{r�r!rr<rvrrr�r�r�rarr�r�r�r�r�r�
gc_collectrWr�r�)r2rr�r�objects�writerr��
reconstructedr�r��chunk_sizesr=�large_sizes�medium_sizes�small_sizes�
chunk_sizes                r �+test_framed_write_sizes_with_delayed_writer�?AbstractPickleTests.test_framed_write_sizes_with_delayed_writer\
s����?�?�V�#��M�M�9�:�	-�	-��1�f�5�5��9�:�E� %�c�#�h��1� /�1��A��
�
�g�.��B���c�!�f�
�F� /�
�1�
�N�N�-� �2�2�b�8�1�<�>�
?�&�'�F��L�L��'�,�,�W�5�
�/�/�1�G� �J�J�w�/�M����]�4����s�6�=�=�1�1�5����� ����V�6�6�8�'�B��G��q�(�T�-C�-C�C�a�G�H��#�#�C��
�
�$6��A�

� � ��V�]�]�!3�Q��\�A�5E�F�+1�=�=�9�=�a�3�q�6�=�K�9�&1�;�k���#9�#9�9��k�K�;�'2�>�{�!��!�<�d�&<�&<�<��<��{�L�>�&1�<�k��!�V�1�k�K�<�*�
����
�A��0F�0F�,F� +�-�*�
� � ��[�!1�!$�[�!1�C��4E�!E��!I�!,�
.�g;��1��H:��;��>��<s6�#5K�.K�	K� K�,K"�K"�K"�	K'�(K'c	��URS:aURS5 [[RS-5H�nURS:aUS:aM[
R[
RR[
RRR4HLnURXS9 URURX!55nURX#5 SSS5 MN M� g!,(df   Md=f)Nr�r�rr�r�)r�r�)
r{r�r!rr<�Nestedrr r�r�r�r�r�)r2r�r�r�s    r �test_nested_names�%AbstractPickleTests.test_nested_names�
s����?�?�V�#��M�M�9�:��6�2�2�Q�6�7�E�����'�E�A�I�����&�(�(�*�*�f�h�h�j�j�l�l�;���\�\��\�7� $�
�
�4�:�:�c�+A� B�I��M�M�#�1�8�7�<�8�8�7�s�82C;�;
D
c��"SS5q[R[R[lS[l[
[RS-5HVnURUS9 URUR[U55nURU[5 SSS5 MX [?g!,(df   Mp=f)Nc��\rSrSrSrg)�	Recursivei�
r(Nr�r(r"r rr�
r#r"rzRecursive.mod.Recursiverr�)
rr�r�rErrFr!rr<r�r�r�r��r2r�r�s   r �test_recursive_nested_names�/AbstractPickleTests.test_recursive_nested_names�
s���	�	����I�$8�$8�9�	�
�!:�	���6�2�2�Q�6�7�E����E��*� �J�J�t�z�z�)�U�'C�D�	��
�
�i��3�+�*�8�
�M�+�*�s�.<B=�=
C	c�h�"SS5q[[lS[l[[R
S-5HVnUR
US9 URUR[U55nURU[5 SSS5 MX [?g!,(df   Mp=f)Nc��\rSrSrSrg)ri�
r(Nr�r(r"r rr�
r#r"rz
Recursive.refrr�)
r�refrFr!rr<r�r�r�r�rs   r �test_recursive_nested_names2�0AbstractPickleTests.test_recursive_nested_names2�
s���	�	�!�	�
�!0�	���6�2�2�Q�6�7�E����E��*� �J�J�t�z�z�)�U�'C�D�	��
�
�i��3�+�*�8�
�M�+�*�s�<B"�"
B1	c	�z�URS:aURS5 [R[5R4n[[RS-5H`nUHWnURX#S9 URURX255nURU"5U"55 SSS5 MY Mb [R[RR[RR[R5R 4n[R[4[RR [R44n[[RS-5H�nURS:aUS:aMUHWnURX#S9 URURX255nURU"5U"55 SSS5 MY UHbup6U"5nURX#S9 URURX255nURU"U5U"U55 SSS5 Md M� [R"S[R"S4n[[RS-5HEnUH<n	URX)S	9 UR%[&URX�5 SSS5 M> MG g!,(df   GM�=f!,(df   GMv=f!,(df   GM,=f!,(df   M�=f)
Nr�r�r�r��methodr�r��cheese�wine�r��descr)r{r��
PyMethodsTestr'�biscuitsr!rr<r�r�r�r�r&r�ketchup�maple�pier�r�r�)
r2�
py_methodsr�r%r��py_unbound_methodsr�r��descriptorsr)s
          r �test_py_methods�#AbstractPickleTests.test_py_methods�
s����?�?�V�#��M�M�9�:�����O�$�$�
�
��6�2�2�Q�6�7�E�$���\�\��\�=� $�
�
�4�:�:�f�+D� E�I��$�$�V�X�y�{�;�>�=�%�8�
� � �� � �(�(�� � �&�&�� � �"�&�&�	
�
��
#�
#�]�3�
�
!�
!�
%�
%�}�';�';�<�
���6�2�2�Q�6�7�E�����'�E�A�I��$���\�\��\�=� $�
�
�4�:�:�f�+D� E�I��$�$�V�X�y�{�;�>�=�%� 2����e���\�\��\�=� $�
�
�4�:�:�f�+D� E�I��$�$�V�C�[�)�C�.�A�>�=� 2�8�
�"�"�8�,��"�"�6�*�
���6�2�2�Q�6�7�E�$���\�\��\�;��%�%�i����U�J�<�;�%�8�A>�=��&>�=��
>�=��<�;�s0�9=K2�1=L�?L�?"L+�2
L�
L�
L(�+
L:c��URS:aURS5 SRS4[RS4/SQRS4[
R/SQ44SS	1RS
4[RSS	1S	44[RS4[RS4[/S
Q5RS
4[R[/S
Q5S	44[RR[RS5S444n[[ R"S-5H^nUHUup4UR%X#S9 UR'UR)X255nUR+U"U6U"U65 SSS5 MW M` [RS5RS44n[[ R"S-5HvnURS:aUS:aMUHUup4UR%X#S9 UR'UR)X255nUR+U"U6U"U65 SSS5 MW Mx [R,S[R,S4n[[ R"S-5HEnUH<nUR%X'S9 UR/[0UR(Xr5 SSS5 M> MG g!,(df   GM�=f!,(df   GM=f!,(df   Mz=f)Nr�r��abcd)r�)r5r�r�r(rr�)r�))r�r)r�r�)sabcrM)rr�r��sweetrcr$)rcr�r��	maketransr�r()r{r��indexr�__len__r��__contains__rrur�rmr7�Subclassrrr!rr<r�r�r�r�r�r�r�)r2�	c_methodsr�r%r3r�r1r)s        r �test_c_methods�"AbstractPickleTests.test_c_methods�
s����?�?�V�#��M�M�9�:��\�\�6�"�
�Y�Y�
�&�
�
�
��#�
�\�\�I�<�(���V�
 �
 �$�'�
�
�
��A���{�+�
�]�]�0�1�
�
 �
 �"2�3�
�g�
�
$�
$�d�+�
�^�^�h�w�/��3�4�
�_�_�
"�
"�X�_�_�W�%=�s�$C�D�)
�	�,�6�2�2�Q�6�7�E� )����\�\��\�=� $�
�
�4�:�:�f�+D� E�I��$�$�V�T�]�I�t�4D�E�>�=�!*�8��_�_�W�
%�
+�
+�V�4�
�	��6�2�2�Q�6�7�E�����'�E�A�I�� )����\�\��\�=� $�
�
�4�:�:�f�+D� E�I��$�$�V�T�]�I�t�4D�E�>�=�!*�8�
���{�+��M�M�*�%�
���6�2�2�Q�6�7�E�$���\�\��\�;��%�%�i����U�J�<�;�%�8�)>�=��>�=��<�;�s$�9K�>9K&� "K9�
K#�&
K6�9
Lc� �[5nSUl[HanURUS9 UR	URX55nUR
URUR5 SSS5 Mc g!,(df   Mu=f)Nrr�)rr�r�r�r�r�r��r2r�r�r�s    r �test_object_with_attrs�*AbstractPickleTests.test_object_with_attrs'sf���h������E����E��*� �J�J�t�z�z�#�'=�>�	�� � ����c�e�e�4�+�*��*�*�s�AA>�>
B
	c�r�[5nSUlUR[URUS5 UR[URUS5 [
SSHsnUR
US9 URUR	X55nURURUR5 URUS5 SSS5 Mu [5nSUlSUlUR[URUS5 UR[URUS5 [
SSH�nUR
US9 URUR	X55nURURUR5 URURUR5 URUS5 SSS5 M� [5nSUlSUlUR[URUS5 UR[URUS5 [
SSH�nUR
US9 URUR	X55nURURUR5 URURUR5 URURUR5 URUS5 SSS5 M� g!,(df   GM�=f!,(df   GM�=f!,(df   M�=f)Nrrr�r�r�)�	WithSlotsr�r�r�r�r�r�r�r��assertNotHasAttr�WithSlotsSubclassr��WithSlotsAndDictr�r@s    r �test_object_with_slots�*AbstractPickleTests.test_object_with_slots/sd���k��������)�T�Z�Z��a�8����)�T�Z�Z��a�8��q�r�]�E����E��*� �J�J�t�z�z�#�'=�>�	�� � ����c�e�e�4��%�%�i��5�+�*�#� �!�����������)�T�Z�Z��a�8����)�T�Z�Z��a�8��q�r�]�E����E��*� �J�J�t�z�z�#�'=�>�	�� � ����c�e�e�4�� � ����c�e�e�4��%�%�i��5�	+�*�#�� �����������)�T�Z�Z��a�8����)�T�Z�Z��a�8��q�r�]�E����E��*� �J�J�t�z�z�#�'=�>�	�� � ����c�e�e�4�� � ����c�e�e�4�� � ��!3�!3�S�\�\�B��%�%�i��5�+�*�#�-+�*��+�*��+�*�s'�1AL�
A?L�B%L'�
L	�
L$	�'
L6	c��[S5n[HinURUS9 URUR	X55nURUR
5UR
55 SSS5 Mk [SS5n[H�nURUS9 URUR	X55nURUR
5UR
55 URUR5UR55 SSS5 M� g!,(df   GM+=f!,(df   M�=f)Nrr�r�)	�WithPrivateAttrsr�r�r�r�r�ra�WithPrivateAttrsSubclass�get2r@s    r �test_object_with_private_attrs�2AbstractPickleTests.test_object_with_private_attrsSs����q�!���E����E��*� �J�J�t�z�z�#�'=�>�	�� � �����#�'�'�)�<�+�*��
'�q�!�,���E����E��*� �J�J�t�z�z�#�'=�>�	�� � �����#�'�'�)�<�� � ����!1�3�8�8�:�>�+�*��+�*��+�*�s�AD-�#A=E�-
D=	�
E	c��[S5nUR[URUS5 UR[URUS5 [SSHinURUS9 UR
URX55nURUR5UR55 SSS5 Mk [SS5nUR[URUS5 UR[URUS5 [SSH�nURUS9 UR
URX55nURUR5UR55 URUR5UR55 SSS5 M� g!,(df   GMr=f!,(df   M�=f)Nrrr�r�)�WithPrivateSlotsr�r�r�r�r�r�r�ra�WithPrivateSlotsSubclassrMr@s    r �test_object_with_private_slots�2AbstractPickleTests.test_object_with_private_slotsas[���q�!�����)�T�Z�Z��a�8����)�T�Z�Z��a�8��q�r�]�E����E��*� �J�J�t�z�z�#�'=�>�	�� � �����#�'�'�)�<�+�*�#�
'�q�!�,�����)�T�Z�Z��a�8����)�T�Z�Z��a�8��q�r�]�E����E��*� �J�J�t�z�z�#�'=�>�	�� � �����#�'�'�)�<�� � ����!1�3�8�8�:�>�+�*�#�+�*��+�*�s�+AF;�1A=G�;
G	�
G	c
���URS:aURS5 [SS5SS4[[S5SS	4[
RSS
4[RSS4[5SS
4[R"5SS4[R"5SS4[R"5SS4/nUH�up#n[S5H�nUR[U5US9 UR!X%5nUR#SU<SU<3R%5U5 UR'[UR)U55[U55 SSS5 M� M� g!,(df   M�=f)Nr�zdoesn't work in Python < 3.4'rr�r��xrange�123�	itertools�imapr�r��
exceptionsr&r��IterableUserDict�UserListr��defaultdictr�)rjr�r�r�)r{r�r!r�rvr�r�r�r�r&r�r�r\r]r�rjr�rbrr�r�)r2�tests�valrrvr�r�s       r �test_compat_pickle�&AbstractPickleTests.test_compat_pickless1���?�?�V�#��M�M�9�:�
�1�a�[�-��2�
��e�_�k�6�2�
�
�
�}�h�7�
�[�[�)�Y�/�
�[�,��4�
�
!�
!�
#�Z�1C�D�
�
!�
!�
#�Z��<�
�
$�
$�
&�
�}�E�	
��$�N�C�d��q����\�\�t�C�y��\�>�"�j�j��4�G��M�M��T�#:�"B�"B�"D�g�N��M�M�$�t�z�z�'�':�";�T�#�Y�G�?�>�"�$�>�>�s
�(A-E&�&
E5c	#�# �Sn[U5v� [U5v� [be[U5n[RUSS9nS[R4H/n[USSUS9v� [USSS	US
9v� [USSSUS
9v� M1 gg7f)N�abcdefgh�little)�	byteorderrr )rr)r�r�r�)r�r�r�)r�r�r�r�r�)rUrdr}r�rv�
from_bytesr�rz)r2�
bytestringr�rr�s     r �buffer_like_objects�'AbstractPickleTests.buffer_like_objects�s���� �
��J�'�'��
�+�+��"���$�E��N�N�:��N�B�E��[�4�4�5��&�u�S��-2�4�4�'�u�S��/5�U�D�D�'�u�S�-3�V�-2�4�4�6�#�s�B
Bc�@�UR5GH�n[S[RS-5GHcnUR	X5nUR
(aUS:�aUR
SU5 UR[[RU5S5 US:�a�UR[[RU5UR(aSOS5 UR[[RU5UR(aSOS5 SnUR	XUS9nURXS5 URU5nURXa5 UR[!U5[!U55 URXa5 GMf GM� g)Nrrr�rcc��g�NTr(�r�s r rO�AAbstractPickleTests.test_in_band_buffers.<locals>.buffer_callback�s��#r"rQ)rhr!rr<r�r�rbr�r%�NEXT_BUFFER�SHORT_BINBYTESr�r_r�r�r�rj)r2r�r�r�rO�data2r�s       r �test_in_band_buffers�(AbstractPickleTests.test_in_band_buffers�s<���+�+�-�C��q�&�"9�"9�A�"=�>���z�z�#�-���#�#���
��M�M�+�t�4�� � ��f�.@�.@�$�!G��K��A�:��$�$�\�&�2G�2G��%N�*-�,�,�Q�A�?��$�$�\�&�2C�2C�T�%J�*-�,�,�Q�A�?�$� �J�J�s�7F�'�H�E��$�$�U�1��j�j��&��� � ��*��
�
�d�3�i��c��3�� � ��*�/?�.r"c	�^�UR5GH�n[SS5H;nUR[5 UR	X/R
S9 SSS5 M= [S[RS-5GH,n/mU4SjnUR	XUS9nURSU5 UR[[RU5S5 UR[[RU5S5 UR[[RU5S5 UR[[RU5UR(aSOS5 UR (aUR[#TS5S5 UR[R$5 UR'U5 SSS5 UR'UTS9nUR((aUR+XQ5 O5UR+[-U5[-U55 URXQ5 UR'U[/T5S9nUR((aUR+XQ5 GM�UR+[-U5[-U55 URXQ5 GM/ GM� g!,(df   GM�=f!,(df   GN=f)Nrr�rQrc�B>�TRUR55$r')r�r�)r�rNs �r r��6AbstractPickleTests.test_oob_buffers.<locals>.<lambda>�s���W�^�^�B�F�F�H�-Er"rcrM)rhr!r�rr�r�rr<r^r�r%rpr_ro�READONLY_BUFFERr�r�r2rVr�r�r�rjr�)r2r�r�rOr�r�rNs      @r �test_oob_buffers�$AbstractPickleTests.test_oob_buffers�s����+�+�-�C��q�!����&�&�z�2��J�J�s�/1�y�y��:�3�2�%�
�q�&�"9�"9�A�"=�>����"E���z�z�#�2A�"�C��� � ��d�3�� � ��f�.C�.C�T�!J�A�N�� � ��f�.?�.?��!F��J�� � ��f�.@�.@�$�!G��K�� � ��f�.D�.D�d�!K�&)�l�l���;��#�#��$�$�U�7�1�:�%6��D��&�&�v�'=�'=�>��J�J�t�$�?��j�j��w�j�7���,�,��M�M�#�+��M�M�$�s�)�T�#�Y�7��$�$�S�.��j�j��t�G�}�j�=���,�,��M�M�#�+��M�M�$�s�)�T�#�Y�7��$�$�S�.�A?�
.�3�2��$?�>�s�J5�5K�5
K�
Kc�F�[S5n[S[RS-5Hun/nURnURXUS9n[
[U5nURXSS9nUR[U5[U55 URXa5 Mw g�NrAr�rrQrM)rUr!rr<r�r�r�rmr�r�rjr�)r2r�r�rNrOr�r�s       r �%test_oob_buffers_writable_to_readonly�9AbstractPickleTests.test_oob_buffers_writable_to_readonly�s����I�&���1�f�5�5��9�:�E��G�%�n�n�O��:�:�c�/�:�J�D��)�W�-�G��*�*�T�*�3�C��M�M�$�s�)�T�#�Y�/����S�&�;r"c���[R"S5n[S[RS-5H�nUR	X/R
S9nUR
[5 URU[5S9 SSS5 UR
[R5 URU/S9 SSS5 M� g!,(df   NK=f!,(df   M�=fr{)rr�r!r<r�r�r�r�r�r)rV)r2r�r�r�s    r �test_buffers_error�&AbstractPickleTests.test_buffers_error�s���
�
 �
 ��
+���1�f�5�5��9�:�E��:�:�b����:�C�D��"�"�9�-��
�
�4���
�2�.��"�"�6�#9�#9�:��
�
�4��
�,�;�:�
;�.�-��;�:�s�&C�&C�
C	�
C$	c��[S[RS-5H$nURSUSS9nUR	USS9nM& g)Nr�rrQrM)r!rr<r�r�)r2r��data_pickledr�s    r �+test_inband_accept_default_buffers_argument�?AbstractPickleTests.test_inband_accept_default_buffers_argumentsD���1�f�5�5��9�:�E��:�:�a���:�E�L��:�:�l�D�:�9�D�;r"zTest needs Numpyc�$^^^�U4SjmU4SjmUUU4Sjn[R"S5nU"U5 U"USSS25 [R"S5RS5nU"U5 U"UR5 U"USSS25 g)Nc�>�[RRX5 TRURR
URR
5 gr')�np�testing�assert_equalr��ctypesr��r*r�r2s  �r �
check_no_copy�=AbstractPickleTests.test_buffers_numpy.<locals>.check_no_copys5����J�J�#�#�A�)����Q�X�X�]�]�A�H�H�M�M�:r"c�>�[RRX5 TRURR
URR
5 gr')r�r�r�r�r�r�r�s  �r �
check_copy�:AbstractPickleTests.test_buffers_numpy.<locals>.check_copys5����J�J�#�#�A�)�������
�
�q�x�x�}�}�=r"c�t>�[S[RS-5H-nTRX5nTR	U5nT"X5 M/ [S[RS-5H/nSnTRXUS9nTR	U5nT"X5 M1 [S[RS-5Hxn/nUR
nTRXUS9nTR	X%S9nURR(dURR(a
T"X5 MpT"X5 Mz g)Nrrr�c��grlr()r�s r r��MAbstractPickleTests.test_buffers_numpy.<locals>.check_array.<locals>.<lambda>s��Dr"rQrM)	r!rr<r�r�r�r�r�r�)	�arrr�r�r�rOrNr�r�r2s	      ���r �check_array�;AbstractPickleTests.test_buffers_numpy.<locals>.check_arrays����q�&�"9�"9�A�"=�>���z�z�#�-���j�j��&���3�$�?��q�&�"9�"9�A�"=�>��"0���z�z�#�o�z�N���j�j��&���3�$�	?��q�&�"9�"9�A�"=�>����")�.�.���z�z�#�o�z�N���j�j��j�7���9�9�)�)�S�Y�Y�-C�-C�!�#�+��s�(�?r"r�r��r�)r��arange�reshape�T)r2r�r�r�r�s`  @@r �test_buffers_numpy�&AbstractPickleTests.test_buffers_numpysu���	;�	>�	)�.�i�i��l���C���C��!��H���i�i��m�#�#�F�+���C���C�E�E���C��!��H�r"c�,�SnURU5 g)Nc� �Sn[U5U4$)Nsaaaaaaaaaaaaaaaa)rm)r=s r r�VAbstractPickleTests.test_concurrent_mutation_in_buffer_with_bytearray.<locals>.factory3s���A��Q�<��?�"r"��.do_test_concurrent_mutation_in_buffer_callback�r2rs  r �1test_concurrent_mutation_in_buffer_with_bytearray�EAbstractPickleTests.test_concurrent_mutation_in_buffer_with_bytearray2s��	#�	
�;�;�G�Dr"c�,�SnURU5 g)Nc�@�[S5SSnS[U5-nX4$)Ns aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaar��r&)r�r�)r��subs  r r�WAbstractPickleTests.test_concurrent_mutation_in_buffer_with_memoryview.<locals>.factory9s'���Y�'��2�.�C���S��/�C��8�Or"r�r�s  r �2test_concurrent_mutation_in_buffer_with_memoryview�FAbstractPickleTests.test_concurrent_mutation_in_buffer_with_memoryview8s��	�	
�;�;�G�Dr"c�L^^�"U4SjS5m[S[RS-5HbnU"5up4[R"U5mU4SjnUR	X#US9 URTX%S9nUR
XF5 SSS5 Md g!,(df   Mv=f)Nc�">�\rSrSrU4SjrSrg)�MAbstractPickleTests.do_test_concurrent_mutation_in_buffer_callback.<locals>.RiAc�&>�TR5 grl)�release)r2r�s �r �__bool__�VAbstractPickleTests.do_test_concurrent_mutation_in_buffer_callback.<locals>.R.__bool__Bs������
�r"r(N)rDrErFrGr�rH)r�s�r �Rr�As
���
�
r"r�r�rc�>�T"5$r'r()r�r�s �r r��TAbstractPickleTests.do_test_concurrent_mutation_in_buffer_callback.<locals>.<lambda>Is����r")r�r�r�rQ)r!rr<r�r�r�rb)	r2rr�r�r�rO�resr�r�s	       @@r r��BAbstractPickleTests.do_test_concurrent_mutation_in_buffer_callback?s����	�	�
�1�f�5�5��9�:�E��y�H�C��%�%�c�*�C�+�O����E���<��j�j��e�j�M���
�
�c�'�=�<�;�
=�<�s�%"B�
B#	c	�^^^	�SSKJm	 "UUU	4SjS5q[H�n[	S5HnnSm[	S5Vs0sHn[5[5_M snmTHnX3lTUlM SmURTU5nURU5 Mp M� gs snf![a(nSnURU[U55 SnAM�SnAff=f)	Nr)�getrandbitsc�6>�\rSrSrU4SjrSrUU4SjrSrg)�BadiTc�>�T$r'r()r2rm�ENABLEDs  �r rn�
Bad.__eq__Us����r"c��g)Nr�r(r7s r r�Bad.__hash__Ws��r"c�L>�T"S5S:XaTR5 [S4$)Nr�rr()r[r�)r2r\r�s ��r rr�Bad.__reduce__Ys%����q�>�Q�&��$�$�&��R�y� r"r(N)rDrErFrGrnrrrrH)r�r\r�s���r r�r�Ts���
�
�
!�
!r"r�r�FTr`)�randomr�r�r�r!rr\r�r�r;rbr)
r2r�r�rr�rcr�r�r\r�s
       @@@r �test_evil_class_mutating_dict�1AbstractPickleTests.test_evil_class_mutating_dictOs����&�	!�	!��E��2�Y����49�"�I�>�I�q�c�e�S�U�l�I�>�
�%�C�!�G�%/�C�N�&���4��:�:�j�%�8�D��J�J�t�$����?��$�4�>�H��M�M�(�C��F�3�3��4�s�B$�8#B)�)
C�3C�Cc�:�[US5(dURS5 [[S-5Vs/sH
o1"U5PM nn[U[R
S-5nUH�nUR
US9 [R"5nURXvS9nSUl
URU5 URS5 URU5R5n	URX�5 SSS5 M� gs snf!,(df   M�=f)Nr��need Pickler classr�rr�r�r)r�r�r!�FAST_NESTING_LIMITrr<r�r<rMr�r�rar>r�r�r�)
r2r�r�rr�r�r�r�r�rqs
          r �fast_save_enter�#AbstractPickleTests.fast_save_enterms����t�Y�'�'��M�M�.�/�(-�.@�1�.D�(E�F�(E�1��A��(E��F��+�v�'>�'>��'B�C�	��E����E��*��j�j�l���,�,�s�,�;�� ������T�"���������s�+�0�0�2��� � ��-�+�*���G�+�*�s�D�;A>D�
D	c�(�URS5 g)Nc��U4$r'r(r�s r r��@AbstractPickleTests.test_fast_save_enter_tuple.<locals>.<lambda>�s���tr"�r�r7s r �test_fast_save_enter_tuple�.AbstractPickleTests.test_fast_save_enter_tuple�s�����^�,r"c�(�URS5 g)Nc��U/$r'r(r�s r r��?AbstractPickleTests.test_fast_save_enter_list.<locals>.<lambda>�s���sr"r�r7s r �test_fast_save_enter_list�-AbstractPickleTests.test_fast_save_enter_list�s�����]�+r"c�(�URS5 g)Nc��[U/5$r'�rr�s r r��DAbstractPickleTests.test_fast_save_enter_frozenset.<locals>.<lambda>�s
��y�!��~r"r�r7s r �test_fast_save_enter_frozenset�2AbstractPickleTests.test_fast_save_enter_frozenset�s�����5�6r"c�(�URS5 g)Nc��[U/5$r')rr�s r r��>AbstractPickleTests.test_fast_save_enter_set.<locals>.<lambda>�s
��s�A�3�xr"r�r7s r �test_fast_save_enter_set�,AbstractPickleTests.test_fast_save_enter_set�s�����/�0r"c�h�URS:aURS5 URSSS9 g)N�r���need frozendictc��[US9$)N)r��
frozendictr�s r r��EAbstractPickleTests.test_fast_save_enter_frozendict.<locals>.<lambda>�s	��z�a�'8r"r�r�)r{r�r�r7s r �test_fast_save_enter_frozendict�3AbstractPickleTests.test_fast_save_enter_frozendict�s/���?�?�W�$��M�M�+�,����8�a��Hr"c�(�URS5 g)Nc�
�SU0$)Nrr(r�s r r��?AbstractPickleTests.test_fast_save_enter_dict.<locals>.<lambda>�s���q�zr"r�r7s r �test_fast_save_enter_dict�-AbstractPickleTests.test_fast_save_enter_dict�s�����1�2r"Tr�c�(�[US5(dURS5 Sn[U5HnU"U5nM
 [U[RS-5nUH�nURUS9 [R"5n	URX�S9n
SU
l	U
RU5 U	RS5 URU	5R5nU(aURX�5 SSS5 M� g!,(df   M�=f)Nr�r�rr�r�r)r�r�r!rr<r�r<rMr�r�rar>r�r�r�)r2�
create_nestedr��
compare_equal�depthr�rr�r�r�r�rqs            r �deep_nested_struct�&AbstractPickleTests.deep_nested_struct�s���
�t�Y�'�'��M�M�.�/����u��A� ��&�D���+�v�'>�'>��'B�C�	��E����E��*��j�j�l���,�,�s�,�;�� ������T�"���������s�+�0�0�2�� ��$�$�U�1�+�*��*�*�s
�0BD�
D	c�(�URS5 g)Nc��U4$r'r(r�s r r��CAbstractPickleTests.test_deep_nested_struct_tuple.<locals>.<lambda>�s��d�Wr"�r�r7s r �test_deep_nested_struct_tuple�1AbstractPickleTests.test_deep_nested_struct_tuple�s����� 4�5r"c�(�URS5 g)Nc��U/$r'r(r�s r r��BAbstractPickleTests.test_deep_nested_struct_list.<locals>.<lambda>�s��d�Vr"r�r7s r �test_deep_nested_struct_list�0AbstractPickleTests.test_deep_nested_struct_list�s����� 3�4r"c�(�URS5 g)Nc��[SU45$r�r�r�s r r��GAbstractPickleTests.test_deep_nested_struct_frozenset.<locals>.<lambda>�s
��Y��4�y�-Ar"r�r7s r �!test_deep_nested_struct_frozenset�5AbstractPickleTests.test_deep_nested_struct_frozenset�s����� A�Br"zexhausts limited stack on WASIc�6�URS[S-SS9 g)Nc��[U51$r')r�r�s r r��AAbstractPickleTests.test_deep_nested_struct_set.<locals>.<lambda>�s
��a��g�Yr"rF)r�r�)r�r�r7s r �test_deep_nested_struct_set�/AbstractPickleTests.test_deep_nested_struct_set�s#����� 6�&8��&:�.3�	 �	5r"c�h�URS:aURS5 URSSS9 g)Nr�r�c��[US9$)Nr)r�r�s r r��HAbstractPickleTests.test_deep_nested_struct_frozendict.<locals>.<lambda>�s	��Z�$�-?r"r�r�)r{r�r�r7s r �"test_deep_nested_struct_frozendict�6AbstractPickleTests.test_deep_nested_struct_frozendict�s4���?�?�W�$��M�M�+�,���� ?�,-�	 �	/r"c�(�URS5 g)Nc�
�SU0$)Nr*r(r�s r r��BAbstractPickleTests.test_deep_nested_struct_dict.<locals>.<lambda>�s��c�4�[r"r�r7s r �test_deep_nested_struct_dict�0AbstractPickleTests.test_deep_nested_struct_dict�s����� 8�9r"r(r')r)�rDrErFrGr��version_infor{�	optimizedr�r�rqr�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�r�r�rr	rrrrrr r$r(r+r/r3r6r9r@rCrIrOrXrarjrorzr~rr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rr
rrr"r)r-r2r9r=rArGrNrSrYrcrirmrqrvr{rr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�skip_if_pgo_task�requires_resourcer�r�r�rrrr!r2r=rArHrNrSr`rhrrrxr|rr��unittest�skipIfr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�is_wasir	rrrHr(r"r roro�s���!�!�J��I�%�/�/�I�
�+�9�9�N�*�6/�	,�08�Q�
#�(�9�E�:B�q�&�42�C�O�08�Q�
#�(�9�G�:B�q�&�42�C�Q�4<��6�,�=�K�>F�ST�9�86�G�U�/�0%�+�"!6�FF�G�O�6�<�H�:�Q�8�>�&�)�,	+�'�&�
6�E�.L�&6�:�%�.0��h���"�5�:�6�:�3�.�7�,�*�.&�1�(�
8�)0�V8�(I�J�L�L�%?�N?�2&�&�E�$E�,,�R��89�9�
9�
2�,3�.9�2*�,*�:*�6"�2�-�-�.�2��1�,� ,�
+�K�)�
Q�N��N�!��-H�^
������u�%�2�&��2�"!:�F(F�T
���B.��B.�H
2�
�
�,K�\2K�h5�"6�H?�?�$H�04�(+�>(/�T'�	-�:�
�_�_�R�4�Z�!3�4�*�5�*�XE�E�(� 4�<.�(-�,�7�1�I�
3�()��!3�a�!7�2�26�5�C��_�_�W�_�_�&F�G�5�H�5�
/�:r"roc��\rSrSr\"\SSS9S5r\"\SSS9S5r\"\SSS9S5r	\"\S	SS9S
5r
\"\S	SS9S5rSrg
)�BigmemPickleTestsi�g������@F)�size�memuse�dry_runc�.�SSU--n[HVnUS:aMURUS9 UR[[45 URX#S9 SSS5 SSS5 MX Sng!,(df   N=f!,(df   M}=f!Snf=f)Nrrrr�r�r�)r�r�r�rrWr�)r2rr�r�s    r �test_huge_long_32b�$BigmemPickleTests.test_huge_long_32b�s����Q��X���	�"���1�9���\�\��\�.��*�*�J�
�+F�G��
�
�4�
�8�H�/�.�#��D�H�G��/�.���D�s:� B�A>�A-�A>�B�-
A;�7A>�>
B
	�B�Bg@c
��SUS--n[H�nUS:aMURUS9 URX#S9n[R[
R"S[U55-nURU5nURUXF[U5-
U5 SnSSS5 M� Sng!Snf=f!,(df   M�=f!Snf=f)N�abcdr�r�r�r�r;)
r�r�r�rr�r=r>r�r8r��r2rr�r�r��header�
data_starts       r �test_huge_bytes_32b�%BigmemPickleTests.test_huge_bytes_32b�s����$�!�)�$��	�"���1�9���\�\��\�.�	'�"&�*�*�T�*�"B��"(�/�/�"(�+�+�d�C��I�">�#?��%,�]�]�4�%8�
��(�(�"�#�s�6�{�$:�:�F�H�#'��/�.�#��D��#'���/�.���D�s:� C�B6�A1B/�B6� C�/B3�3B6�6
C	�C�Cc
�J�SUS--n[H�nUS:aMURUS9 US:Xa>UR[[45 URX#S9 SSS5 SSS5 M_URX#S9n[R[R"S[U55-nURU5nURUXF[U5-
U5 SnSSS5 M� Sng!,(df   N�=f!Snf=f!,(df   GM=f!Snf=f)Nsacbdr�r�r�r��<Q)
r�r�r�rrWr�rr�r=r>r�r8r�r&s       r �test_huge_bytes_64b�%BigmemPickleTests.test_huge_bytes_64b�s���$�!�)�$��	�"���1�9���\�\��\�.���z�"�.�.�
�M�/J�K� �J�J�t�J�<�L� �
/�.�	'�"&�*�*�T�*�"B��"(�"2�"2�"(�+�+�d�C��I�">�#?��%,�]�]�4�%8�
��(�(�"�#�s�6�{�$:�:�F�H�#'��!/�.�#�*�D�L�K��#'���!/�.��$�D�sY� D�"D�C3�	D�%
D�0A1D�!D�$D�3
D�=D�D�D�
D	�	D�D"rrc
�.�SUS--n[H�nUS:XaMURUS9 URX#S9n[R[
R"S[U55-nURS5nURUXF[U5-
U5 URURS5[S5-URS5-
[U55 SnSSS5 M� Sng!Snf=f!,(df   M�=f!Snf=f)Nr5r�rr�r�r;r%)r�r�r�rr�r=r>r�r8r��rindexr&s       r �test_huge_str_32b�#BigmemPickleTests.test_huge_str_32bs
������#��	�"���A�:���\�\��\�.�'�"&�*�*�T�*�"B��"(�"3�"3�"(�+�+�d�C��I�">�#?��%,�]�]�7�%;�
��(�(�"�#�s�6�{�$:�:�F�H��(�(�'�.�.��*A�C��L�*P�*1�-�-��*@�+A�CF�t�9�N�#'��/�.�#�"�D��#'���/�.���D�s:� D�C>�B9C7�%C>�(D�7C;�;C>�>
D
	�D�Dc
���SUS--n[GH%nUS:XaMURUS9 US:a>UR[[45 URX#S9 SSS5 SSS5 M`URX#S9n[R[R"S[U55-nURS5nURUXF[U5-
U5 URURS5[S5-URS5-
[U55 SnSSS5 GM( Sng!,(df   N�=f!Snf=f!,(df   GMU=f!Snf=f)Nr5r�rr�r�r,r%)r�r�r�rrWr�rr�r=r>r�r8r�r0r&s       r �test_huge_str_64b�#BigmemPickleTests.test_huge_str_64b*sQ������#��	�"����A�:���\�\��\�.��q�y�!�.�.�
�M�/J�K� �J�J�t�J�<�L� �	/�.�
'�"&�*�*�T�*�"B��"(�"4�"4�"(�+�+�d�C��I�">�#?��%,�]�]�7�%;�
��(�(�"�#�s�6�{�$:�:�F�H��(�(�'�.�.��*A�C��L�*P�*1�-�-��*@�+A�CF�t�9�N�#'��!/�.�#�*�D�!L�K��#'���!/�.��$�D�sY�!E(�"E�
D=�	E�&
E(�1B9E�*E�-
E(�=
E�E�E�E�
E%	�	E(�(E,r(N)
rDrErFrGrr	r"r)r
r-r1r4rHr(r"r rr�s����S��e�4�
�5�
� �S��e�4��5��(�S��e�4��5��:�S��E�2��3��4�S��E�2��3�r"rc��\rSrSrSrg)riFr(Nr�r(r"r rrFs��r"rc��\rSrSrSrSrg)�UnpickleableiIc��[er'rLr7s r rr�Unpickleable.__reduce__Js���r"r(N�rDrErFrGrrrHr(r"r r8r8Is��r"r8c��\rSrSrSrSrg)r�iPc��gr'r(r�s   r �__call__�UnpickleableCallable.__call__Qrsr"r(N)rDrErFrGr>rHr(r"r r�r�Ps��
r"r�c��\rSrSrSrSrg)r9iUc��UR gr')r�)r2rs  r �__getattr__�BadGetattr.__getattr__Vs	����r"r(N)rDrErFrGrBrHr(r"r r9r9Us��r"r9c�(^�\rSrSrU4SjrSrU=r$)r�iZc�:>�US:Xa[e[TU]	U5$)Nr�)r��super�__getattribute__)r2rvr�s  �r rG�NoNew.__getattribute__[s!����9�� � ��w�'��-�-r"r()rDrErFrGrGrH�
__classcell__)r�s@r r�r�Zs
���.�.r"r�c�b�\rSrSrSrSrSrSrSrSr	Sr
S	rS
rSr
SrS
rSrSrg)�AbstractPickleModuleTestsiac��[[S5nUR5 UR[UR
SU5 [R"[5 g![R"[5 f=f�Nr\�{�ror
�closer�rrar�unlink�r2rus  r �test_dump_closed_file�/AbstractPickleModuleTests.test_dump_closed_filec�Q�������	%�
�G�G�I����j�$�)�)�S�!�<����V�$��I���V�$���2A�A;c��[[S5nUR5 UR[UR
SU5 [R"[5 g![R"[5 f=frMrOrRs  r �test_load_closed_file�/AbstractPickleModuleTests.test_load_closed_filekrUrVc��[R"5nS0S/nURX!5 URS5 UR	U5nURX25 g)NrN�|r)r<rMrar>r�r�)r2�streamr�r�s    r �test_load_from_and_dump_to_file�9AbstractPickleModuleTests.test_load_from_and_dump_to_filessK��������R��~���	�	�$�����A���I�I�f�%�	�����)r"c�D�UR[RS5 g)Nr�)r�rr<r7s r �test_highest_protocol�/AbstractPickleModuleTests.test_highest_protocol{s������0�0�!�4r"c��[R"5nURSUS5 URSUSS9 URSS5 URSSS9 UR	US5 UR	USS9 g)NrNr�)�filer�r�)r<rMrar��PicklerrRs  r �test_callapi�&AbstractPickleModuleTests.test_callapisk���J�J�L���	�	�#�q�"���	�	�#�A��	�+��
�
�3����
�
�3��
�$����Q������Q���$r"c�6�[[S5n[H%nUR[UR
SX5 M' UR
5 [R"[5 g!UR
5 [R"[5 f=f)N�wrN)	ror
r�r�r�rarPrrQr*s   r �test_dump_text_file�-AbstractPickleModuleTests.test_dump_text_file�si�������	%�"���!�!�)�T�Y�Y��Q�F�#�
�G�G�I����V�$��
�G�G�I����V�$�s�/A,�,,Bc��[R"S5nUR[[R
[R4URU5 g)NsX''.)	r<rMr�rXr=r
rrVr�)r2r=s  r �test_incomplete_input�/AbstractPickleModuleTests.test_incomplete_input�s8���J�J�w������8�V�\�\�6�3I�3I�J�D�I�I�WX�Yr"c��"SSUR5n"SSUR5nUR[RU"5R
S5 UR[RU"5R5 g)Nc��\rSrSrSrSrg)�;AbstractPickleModuleTests.test_bad_init.<locals>.BadPickleri�c��gr'r(r7s r rS�DAbstractPickleModuleTests.test_bad_init.<locals>.BadPickler.__init__����r"r(N�rDrErFrGrSrHr(r"r �
BadPicklerrp����$r"ruc��\rSrSrSrSrg)�=AbstractPickleModuleTests.test_bad_init.<locals>.BadUnpickleri�c��gr'r(r7s r rS�FAbstractPickleModuleTests.test_bad_init.<locals>.BadUnpickler.__init__�rsr"r(Nrtr(r"r �BadUnpicklerrx�rvr"r{r)rdr�r�rr�rarVr�)r2rur{s   r �
test_bad_init�'AbstractPickleModuleTests.test_bad_init�sb��	%����	%�	%�4�>�>�	%�	
���&�.�.�
��0A�0A�1�E����&�0�0�,�.�2E�2E�Fr"c��^^�Sm[S5m"SS5nUR[[4URU"55 "U4SjS5nUR[[4URU"55 "U4SjS5nUR[[4URU"55 "UU4SjS5nUR[
URU"55 "UU4SjS5nUR[
URU"55 "U4S	jS5nUR[
URU"55 "U4S
jS5nUR[[
4URU"55 "UU4SjS5nUR	U"55 "UU4SjS5nUR	U"55 g![
a N2f=f![
a gf=f)
Nc��[er')r�r�s   r �raises_oserror�IAbstractPickleModuleTests.test_unpickler_bad_file.<locals>.raises_oserror�s���Mr"c��[er'rLr7s r �bad_property�GAbstractPickleModuleTests.test_unpickler_bad_file.<locals>.bad_property�s���r"c��\rSrSrSrg)�<AbstractPickleModuleTests.test_unpickler_bad_file.<locals>.Fi�r(Nr�r(r"r �Fr��r#r"r�c�>�\rSrSrYrSrg)r�i�r(N�rDrErFrGrQrH�r�s�r r�r��s���%�Hr"c�>�\rSrSrYrSrg)r�i�r(N�rDrErFrGrPrHr�s�r r�r��s���!�Dr"c�">�\rSrSrYrYrSrg)r�i�r(N)rDrErFrGrPrQrH�r�r�s��r r�r��s
����D�%�Hr"c�">�\rSrSrYrYrSrg)r�i�r(N)rDrErFrGrQrPrHr�s��r r�r��s
���#�H�!�Dr"c�>�\rSrSrYrSrg)r�i�r(Nr��r�s�r r�r��s���#�Hr"c�>�\rSrSrYrSrg)r�i�r(Nr�r�s�r r�r��s����Dr"c�(>�\rSrSrYrYrYrSrg)r�i�r(N)rDrErFrGr4rPrQrHr�s��r r�r��s����D�!�D�%�Hr"c�(>�\rSrSrYrYrYrSrg)r�i�r(N)rDrErFrG�readintorPrQrHr�s��r r�r��s���#�H�!�D�%�Hr")r�r�r�r�r�r)r2r�r�r�s  @@r �test_unpickler_bad_file�1AbstractPickleModuleTests.test_unpickler_bad_file�s����	�	�	�
�	�	�	����>�9�5�t�~�~�q�s�K�	&�	&����>�9�5�t�~�~�q�s�K�	"�	"����>�9�5�t�~�~�q�s�K�	&�	&�	
���+�t�~�~�q�s�;�	"�	"�	
���+�t�~�~�q�s�;�	$�	$����+�t�~�~�q�s�;�	 �	 ����>�;�7������M�	&�	&�	��N�N�1�3��
	&�	&�	��N�N�1�3����	��	���	��	�s$�G�G)�
G&�%G&�)
G6�5G6c���"SS5nUR[URU"55 "SS5nUR[URU"55 g)Nc��\rSrSrSrg)�:AbstractPickleModuleTests.test_pickler_bad_file.<locals>.Fi�r(Nr�r(r"r r�r��r#r"r�c�$�\rSrSr\S5rSrg)r�i�c��[er'rLr7s r rR�@AbstractPickleModuleTests.test_pickler_bad_file.<locals>.F.write�s��!�!r"r(N)rDrErFrGr�rRrHr(r"r r�r��s��
�
"��
"r")r�r�rdr)r2r�s  r �test_pickler_bad_file�/AbstractPickleModuleTests.test_pickler_bad_file�sH��	�	����)�T�\�\�1�3�7�	"�	"�	
���+�t�|�|�Q�S�9r"c�D�[S5n[SS5H2nUR[5 U"X4/RS9 SSS5 M4 [S[
RS-5H�n/nURnU"X4US9nURSU5 UR[US5S5 UR[
R5 U"U5 SSS5 U"XuS9nURX�5 M� g!,(df   M�=f!,(df   N<=f)Nsfoorr�)r�rOrrM)rUr!r�rr�rr<r^r�r2rVr�)	r2r�r�r�r�rNrOr�r�s	         r �check_dumps_loads_oob_buffers�7AbstractPickleModuleTests.check_dumps_loads_oob_buffers�s����F�#���1�a�[�E��"�"�:�.��c�&(�i�i�1�/�.�!�
�1�f�5�5��9�:�E��G�%�n�n�O���)8�:�D����V�T�*����U�7�1�:�.��7��"�"�6�#9�#9�:��d��;���.�C��M�M�#�#�;�/�.��;�:�s�C?�	D�?
D	�
D	c�P�URURUR5 gr')r�r�r�r7s r �test_dumps_loads_oob_buffers�6AbstractPickleModuleTests.test_dumps_loads_oob_bufferss���*�*�4�:�:�t�z�z�Br"c�@^�U4SjnU4SjnTRX5 g)Nc�t>�[R"5nTR"X40UD6 UR5$r')r<rMrarO)r�r�rur2s   �r r��CAbstractPickleModuleTests.test_dump_load_oob_buffers.<locals>.dumpss+����
�
��A��I�I�c�'��'��:�:�<�r"c�V>�[R"U5nTR"U40UD6$r')r<rMr�)r�r�rur2s   �r r��CAbstractPickleModuleTests.test_dump_load_oob_buffers.<locals>.loadss%����
�
�4� �A��9�9�Q�)�&�)�)r")r�)r2r�r�s`  r �test_dump_load_oob_buffers�4AbstractPickleModuleTests.test_dump_load_oob_bufferss���	 �
	*�	
�*�*�5�8r"r(N)rDrErFrGrSrXr]r`rerirlr|r�r�r�r�r�rHr(r"r rKrKasG��%�%�*�5�%�%�Z�
G�?�B:�$�0C�9r"rKc�&�\rSrSrSrSrSrSrg)�AbstractPersistentPicklerTestsic��[U[5(a)US-S:Xa U=RS-
sl[U5$US:XaU=RS-
slgg)Nr�rr�test_false_valuerG)r�rv�id_countr�false_count)r2r)s  r r]�,AbstractPersistentPicklerTests.persistent_id sQ���f�c�"�"�v��z�Q���M�M�Q��M��v�;��
�)�
)�����!���r"c��U(dU=RS-
slgU=RS-
sl[U5nUS-S:XdeU$)Nrr�r�r)�load_false_count�
load_countrv)r2�oidr)s   r �persistent_load�.AbstractPersistentPicklerTests.persistent_load*sE����!�!�Q�&�!�%��O�O�q� �O���X�F��A�:��?�"�?��Mr"c	���[[S55S/-n[H�nSUlSUlSUlSUlURURURX55U5 URURS5 URURS5 URURS5 URUR
S5 M� g)Nr�r�rr�r)
r�r!r�r�r�r�r�r�r�r�)r2�Lr�s   r �test_persistence�/AbstractPersistentPicklerTests.test_persistence4s�����r��O�1�2�2���E��D�M� �D��$%�D�!��D�O����T�Z�Z��
�
�1�(<�=�q�A����T�]�]�A�.����T�-�-�q�1����T�_�_�a�0����T�2�2�A�6�r")r�r�r�r�N)rDrErFrGr]r�r�rHr(r"r r�r�s����7r"r�c�2�\rSrSrSrSrSrSrSrSr	g)	�&AbstractIdentityPersistentPicklerTestsiBc��U$r'r()r2r�s  r r]�4AbstractIdentityPersistentPicklerTests.persistent_idD����
r"c��U$r'r()r2�pids  r r��6AbstractIdentityPersistentPicklerTests.persistent_loadGr�r"c��URURX55nURU[U55 UR	X15 gr')r�r�r�rjr�r@s    r �_check_return_correct_type�AAbstractIdentityPersistentPicklerTests._check_return_correct_typeJs;���J�J�t�z�z�#�5�6�	����i��c��3�����(r"c��[H@nUS:XaURSS5 MSSSS[4HnURX!5 M MB g)Nrr�sabc
zabc
r�g*\��(��)r�r�r)r2r�r�s   r �test_return_correct_type�?AbstractIdentityPersistentPicklerTests.test_return_correct_typeOsG���E���z��/�/��q�9�$�g�r�:�s�C�C��3�3�C�?�D�r"c��SnUR[R5nURUS5 SSS5 UR	[WR5S5 [RURS5-S-nUR[R5nURU5 SSS5 UR	[UR5S5 g!,(df   N�=f!,(df   NE=f)Nu∅rz2persistent IDs in protocol 0 must be ASCII stringsr]r)r�rr�r�r�rrC�PERSIDrrVr�)r2�
non_ascii_strr�r�s    r �test_protocol0_is_ascii_only�CAbstractIdentityPersistentPicklerTests.test_protocol0_is_ascii_onlyXs���'�
�
�
�
�v�3�3�
4���J�J�}�a�(�5�����R�\�\�*�M�	O��-�-�-�"6�"6�w�"?�?�&�H��
�
�
�v�5�5�
6�"��J�J�w��7�����R�\�\�*�M�	O�5�
4��
7�
6�s�C&�&C7�&
C4�7
Dr(N)
rDrErFrGr]r�r�r�r�rHr(r"r r�r�Bs����)�
@�
Or"r�c�f�\rSrSrSrSrSrSrSrSr	Sr
SS	.S
jrSrSr
S
rSrSrSrg)�#AbstractPicklerUnpicklerObjectTestsieNc�P�UR(deUR(degr')�
pickler_class�unpickler_classr7s r rq�)AbstractPicklerUnpicklerObjectTests.setUpjs ���!�!�!�!��#�#�#�#r"c�$�/SQn[GHn[R"5nURX25nUR	U5 UR5nUR
S5 UR5 UR	U5 UR5nUR5 UR
S5 UR5 UR	U5 UR5nURXV5 URXW5 GM g)N��abcdefgr��,r)r�r<rMr�rarOr>�truncate�
clear_memor�r�)r2r�r�rur��
first_pickled�second_pickled�
third_pickleds        r �test_clear_pickler_memo�;AbstractPicklerUnpicklerObjectTests.test_clear_pickler_memons���*���Y�E��
�
��A��(�(��2�G��L�L����J�J�L�M�
�F�F�1�I�
�J�J�L��L�L����Z�Z�\�N�
��� �
�F�F�1�I�
�J�J�L��L�L����J�J�L�M����
�>����]�:�/r"c�l�/SQn[R"5nURU5nURU5 UR	5n[R"5nURU5nUR
UlURU5 UR	5nUR
XF5 g�Nr�)r<rMr�rarO�memor�)r2r�rur�r��primed�primed_pickleds       r �test_priming_pickler_memo�=AbstractPicklerUnpicklerObjectTests.test_priming_pickler_memo�s���)���J�J�L���$�$�Q�'�����T���
�
��
��J�J�L���#�#�A�&���l�l������D����������M�:r"c���/SQn[R"5nURU5nURU5 UR	5n[R"5nURU5nUR
UlURU5 UR	5nUR
[R"U55nUR5nURX�5 UR
[R"U55nUR
UlUR5n	UR
R5 URX�5 URX�L5 gr�)r<rMr�rarOr�r�r�r�r[r[)
r2r�rur�r�r�r�r��unpickled_data1�unpickled_data2s
          r �test_priming_unpickler_memo�?AbstractPicklerUnpicklerObjectTests.test_priming_unpickler_memo�s��)���J�J�L���$�$�Q�'�����T���
�
��
��J�J�L���#�#�A�&���l�l������D��������(�(����M�)B�C�	�#�.�.�*������/��%�%�b�j�j��&@�A���n�n��� �+�+�-������������/�����:�;r"c���/SQn[R"5nURU5nURU5 UR	5n/SQn[R"5nURU5nURU5 UR	5n[R"5nURU5 UR
S5 URU5nURUR5U5 UR
S5 UR5 URU5 UR
S5 URUR5U5 g)Nr�)r�r�r�r)r<rMr�rarOrRr>r�r�r�r�)r2�data1rur��pickled1rq�pickled2r�s        r �test_reusing_unpickler_objects�BAbstractPicklerUnpicklerObjectTests.test_reusing_unpickler_objects�s���*���J�J�L���$�$�Q�'�����U���:�:�<��#���J�J�L���$�$�Q�'�����U���:�:�<���J�J�L��	�����	���q�	��(�(��+�	�������)�5�1�	���q�	�	�
�
��	�����	���q�	�������)�5�1r"T�r8c
���[GH=nURUS9 [S5Vs/sHoD[U54PM snS[/-nU"5nURXcS9nUR
U5 UR5nSn	U"X�-5nURU5n
[U	5HonU(aUR5nURU
R5U5 U(dMCURUR5W[	U5-5 Mq UR[U
R5 SSS5 GM@ gs snf!,(df   GMX=f)Nr�i�sabcder�r�)r�r�r!rr�r�rarOr�rBr�r�r�rX)
r2�ioclassr8r�r*r�rur�r�r�r�rr�s
             r �_check_multiple_unpicklings�?AbstractPicklerUnpicklerObjectTests._check_multiple_unpicklings�s���Y�E����E��*�.3�D�k�:�k��S��V��k�:�h��_�L���I���,�,�Q�,�?�����U�#��*�*�,�����G�K�(�� �0�0��3�	��q��A���f�f�h���$�$�Y�^�^�%5�u�=��x��(�(�����3��W��3E�F�"��!�!�(�I�N�N�;�!+�*���:�+�*�s#�E�E
�B*E�,AE�
E�
E	c�B�UR[R5 gr')r�r<rMr7s r �"test_multiple_unpicklings_seekable�FAbstractPicklerUnpicklerObjectTests.test_multiple_unpicklings_seekable�s���(�(����4r"c�,�UR[SS9 g�NFr�)r�r-r7s r �$test_multiple_unpicklings_unseekable�HAbstractPicklerUnpicklerObjectTests.test_multiple_unpicklings_unseekable�s���(�(���(�Fr"c�,�UR[SS9 gr�)r�rJr7s r �!test_multiple_unpicklings_minimal�EAbstractPicklerUnpicklerObjectTests.test_multiple_unpicklings_minimal�s��	
�(�(��U�(�Cr"c��[[S55n[H�n[SS5H�n[R"[R
"5US9nUR
XBS9nURU5 URS5 URU5nURUR5U5 M� M� g)Nr�rr�)�buffer_sizer�r)r�r!r�r<�BufferedRandomrMr�rar>r�r�r�)r2r�r��buf_sizerur�r�s       r �"test_unpickling_buffering_readline�FAbstractPicklerUnpicklerObjectTests.test_unpickling_buffering_readline�s����E�"�I����E�!�!�R�L���%�%�b�j�j�l��I���,�,�Q�,�?�����T�"����q�	� �0�0��3�	�� � ����!1�4�8�
)�r"c��[5n[R"5n"SSUR5nU"U5nUR	U5 UR5 SUlUR[5 UR	U5 SSS5 UR5 SUlUR[5 UR	U5 SSS5 g!,(df   NU=f!,(df   g=f)Nc��\rSrSrSrg)�[AbstractPicklerUnpicklerObjectTests.test_pickle_invalid_reducer_override.<locals>.MyPicklerir(Nr�r(r"r �	MyPicklerrr#r"rr�)	r)r<rMr�rar��reducer_overrider�r�)r2r�rurr�s     r �$test_pickle_invalid_reducer_override�HAbstractPicklerUnpicklerObjectTests.test_pickle_invalid_reducer_overrides����h���J�J�L��	��*�*�	��A�,�����S������#'�� �
�
�
�y�
)��L�L���*�	����#%�� �
�
�
�y�
)��L�L���*�
)�*�
)��
*�
)�s�:C�C,�
C)�,
C:r()rDrErFrGr�r�rqr�r�r�r�r�r�r�rrrrHr(r"r r�r�esM���M��O�$�;�@;�$<�<2�2@D�<�(5�G�D�
9�r"r��reduce_Ac��\rSrSrSrSrg)r�ic��[[44$r')rr�r7s r rr�AAA.__reduce__s���X�K��r"r(Nr;r(r"r r�r�s�� r"r�c� �\rSrSrSrSrSrg)�BBBic��SUlg)Nzsome attributer�r7s r rS�BBB.__init__ s��"��r"c��SUlg)N�BBB.__setstate__r�)r2r�s  r �__setstate__�BBB.__setstate__%s	��#��r"r�N)rDrErFrGrSrrHr(r"r rrs��"�
$r"rc��SUlg)a\Custom state setter for BBB objects

Such callable may be created by other persons than the ones who created the
BBB class. If passed as the state_setter item of a custom reducer, this
allows for custom state setting behavior of BBB objects. One can think of
it as the analogous of list_setitems or dict_setitems but for foreign
classes/functions.
�custom state_setterNr�)r�r�s  r �setstate_bbbr)s��
"�C�Er"c��\rSrSrSrSrSrg)�AbstractCustomPicklerClassi6z<Pickler implementing a reducing hook using reducer_override.c��[USS5nUS:Xa[S4$US:Xa[S4$US:XagUS:Xa[S	5e[$)
NrDru)r��MyClass)�some str�gF�h�The reducer just failed)r�rvrrr�)r2r��obj_names   r r
�+AbstractCustomPicklerClass.reducer_override8s[���3�
�D�1���s�?���:���y� ��
�%�%�
��_��
��_��6�7�7��r"r(N)rDrErFrGrUr
rHr(r"r r r 6s
��F�r"r c�>�\rSrSrSr\RS5rSrg)�AbstractHookTestsiNc�F�SnSnSn"SS5n[S[RS-5GH7nURUS9 [R
"5nUR
Xe5nURX[R/5 [R"UR55up�n
URUS	5 URU	S
5 URU
[R5 UR[R5 URU5 SSS5 UR!["S5 URU5 SSS5 SSS5 GM: g!,(df   NL=f!,(df   N-=f!,(df   GMo=f)Nc��gr'r(r(r"r ru�.AbstractHookTests.test_pickler_hook.<locals>.fTr)r"c��gr'r(r(r"r r$�.AbstractHookTests.test_pickler_hook.<locals>.gWr)r"c��gr'r(r(r"r r%�.AbstractHookTests.test_pickler_hook.<locals>.hZr)r"c��\rSrSrSrg)�4AbstractHookTests.test_pickler_hook.<locals>.MyClassi]r(Nr�r(r"r r"r3]r#r"r"rrr�r�r#r&)r!rr<r�r<rMr�rar�r�r�rOr�r�r�r�r{r)r2rur$r%r"r��bior��new_f�some_str�math_logs           r �test_pickler_hook�#AbstractHookTests.test_pickler_hookOs3��
	�	�	�	�	��1�f�5�5��9�:�E����E��*��j�j�l���&�&�s�2������D�H�H�-�.�,2�L�L�����,H�)���� � ���*�� � ��:�6�
�
�
�h����1��&�&�v�';�';�<��F�F�1�I�=��+�+�"�$=�?��F�F�1�I�?�%+�*�;� =�<��?�?��%+�*�s=�CF�E.�(F�E?�F�.
E<�8F�?
F
�	F�
F 	c���[S[RS-5H�nURUS9 Sn[R
"U5n[R"5nURXA5nURU5 [R"UR55nUS:XdeAAURU"55 SSS5 M� g!,(df   M�=f)Nrrr�c��gr'r(r(r"r ru�EAbstractHookTests.test_reducer_override_no_reference_cycle.<locals>.fs��r"r�)
r!rr<r�r&r r<rMr�rar�rOrC)r2r�ru�wrr4r�r5s       r �(test_reducer_override_no_reference_cycle�:AbstractHookTests.test_reducer_override_no_reference_cyclews����1�f�5�5��9�:�E����E��*���[�[��^���j�j�l���&�&�s�2�����q�	����S�\�\�^�4����z�!�z����!�!�"�$�'�+�*�;�*�*�s�BC�
C!	r(N)	rDrErFrGr8rr{r>rHr(r"r r*r*Ns"��&�P
���(��(r"r*c�2�\rSrSrSrSrSrSrSrSr	g)	�AbstractDispatchTableTestsi�c��[R"5nURUS5nUR[5 UR
 SSS5 UR
[US55 g!,(df   N*=f)Nr�dispatch_table)r<rMr�r�r�rCr5r�)r2rur�s   r �test_default_dispatch_table�6AbstractDispatchTableTests.test_default_dispatch_table�sZ���J�J�L�����q�!�$��
�
�
�~�
.�
���/������$4�5�6�/�
.�s�
A.�.
A<c�^^^�TR5m"U4SjSTR5mSUUU4SjjnTRUT5 g)Nc�>�\rSrSrYrSrg)�GAbstractDispatchTableTests.test_class_dispatch_table.<locals>.MyPickleri�r(N)rDrErFrGrCrH)�dts�r rrH�s����Nr"rc�>�[R"5nT"X!5nTRURT5 UR	U5 UR5$r')r<rMr�rCrarO)r�r�rur�rrIr2s    ���r r��CAbstractDispatchTableTests.test_class_dispatch_table.<locals>.dumps�sE����
�
��A��!�&�A����Q�-�-�r�2�
�F�F�3�K��:�:�<�r"r')�get_dispatch_tabler��_test_dispatch_table)r2r�rrIs` @@r �test_class_dispatch_table�4AbstractDispatchTableTests.test_class_dispatch_table�s?���
�
$�
$�
&��	 ��*�*�	 �	 �	 �	
�!�!�%��,r"c�^^^�TR5mSUU4SjjnTRUT5 g)Nc��>�[R"5nTRX!5nTUlTR	URT5 URU5 UR
5$r')r<rMr�rCr�rarO)r�r�rur�rIr2s    ��r r��FAbstractDispatchTableTests.test_instance_dispatch_table.<locals>.dumps�sS����
�
��A��"�"�1�/�A�!�A�����Q�-�-�r�2�
�F�F�3�K��:�:�<�r"r')rLrM)r2r�rIs` @r �test_instance_dispatch_table�7AbstractDispatchTableTests.test_instance_dispatch_table�s-���
�
$�
$�
&��	 �	 �	
�!�!�%��,r"c��[5n[R"5nURU5n[	U5S0UlUR
[5 URU5 SSS5 g!,(df   g=fr')	r)r<rMr�rjrCr�r�ra)r2r�rur�s    r �test_dispatch_table_None_item�8AbstractDispatchTableTests.test_dispatch_table_None_item�s[���h���J�J�L���$�$�Q�'��"&�s�)�T�!2���
�
�
�y�
)��L�L���*�
)�
)�s�A3�3
Bc�^^^�U4SjnSnSnURU"U5U5 URU"U5U5 SmU4SjnXb['URU"U5T5 URU"U5U5 [5n[5nURU"U5[5 URU"U5[5 URU"U5[5 URU"U5[5 Xb['URU"U5[5 URU"U5T5 URU"U5[5 URU"U5[5 SmU4Sjn	X�['U[	URU"U5T5 URU"U5[5 URU"U5[5 URU"U5[5 URU"U5RS5 S	n
X�['URU"U5RS
5 g)Nc�>>�[R"T"US55$�Nr)rr�)r�r�s �r �custom_load_dump�IAbstractDispatchTableTests._test_dispatch_table.<locals>.custom_load_dump�s����<�<��c�1�
�.�.r"c�X�[R"[R"US55$rZ)rr�r�rms r �default_load_dump�JAbstractDispatchTableTests._test_dispatch_table.<locals>.default_load_dump�s���<�<����S�!� 4�5�5r"y�?@�reduce_1c�>�[T44$r'r�)r��REDUCE_1s �r r`�AAbstractDispatchTableTests._test_dispatch_table.<locals>.reduce_1��������#�#r"�reduce_2c�>�[T44$r'r�)r��REDUCE_2s �r re�AAbstractDispatchTableTests._test_dispatch_table.<locals>.reduce_2�rdr"rc�6�[SURSS[4$)Nr()rr�rrms r �
reduce_bbb�CAbstractDispatchTableTests._test_dispatch_table.<locals>.reduce_bbb�s����C�L�L�$��l�B�Br"r)r��complexr�rr�r�r�)
r2r�rCr[r^r�r`r�r�rerjrbrgs
 `         @@r rM�/AbstractDispatchTableTests._test_dispatch_table�s���	/�	6�

�����)�!�,�a�0����*�1�-�q�1���	$�"*�w�����)�!�,�h�7����*�1�-�q�1�
�E���E�����)�!�,�h�7����.�q�1�3�7����*�1�-�x�8����/��2�C�8�'�s�����)�!�,�h�7����)�!�,�h�7����*�1�-�x�8����/��2�C�8���	$�&�s���3�����)�!�,�h�7����.�q�1�3�7����*�1�-�x�8����/��2�C�8�	
���*�1�-�/�/�1C�D�	C�)�s��	
���)�!�,�.�.�0E�Fr"r(N)
rDrErFrGrDrNrSrVrMrHr(r"r rArA�s��7�-� -��@Gr"rArr�zDATA{0} = (r�z	    {0!r}�)z# Disassembly of DATA{0}zDATA{0}_DIS = """\z""")�r�r�r[r�r<r�r�r�rrrkr=r�rpr�rr&r�textwrapr�http.cookiesrr}r�rr�test.supportrrrr	r
r�test.support.import_helperr�test.support.os_helperr
r�test.support.testcaser�test.support.warnings_helperrr�test.picklecommonr�numpyr��
skipUnlessrmrzr!r<r�r�r!r%r+rMr-r)rJrWrjrgrqrzr�r�r�r�r��	DATA2_DISr��	DATA3_DISr��	DATA4_DISrr r"r��ArithmeticError�AssertionErrorr�r�rG�BytesWarning�DeprecationWarningrX�EnvironmentErrorr&�FloatingPointError�
FutureWarning�
GeneratorExit�IOError�
ImportWarning�IndentationErrorr��KeyError�KeyboardInterrupt�LookupError�MemoryError�	NameErrorr0r�rW�PendingDeprecationWarning�ReferenceErrorr;�RuntimeWarning�
StopIteration�SyntaxError�
SyntaxWarning�SystemError�
SystemExit�TabErrorr��UnboundLocalError�UnicodeError�UnicodeWarning�UserWarningr�Warning�ZeroDivisionErrorr$r%r'r�r�rrorrr8r�r�r9r�rKr�r�r�r�r�rrr r*rArDr�r*rr�r�r�r�r��jr2r�r(r"r �<module>r�s������
�	��	��
��
�
�
�������%����"���.�)�)�1�F����
�	&�	(��
)��"�"�3�;�;��#6�#M�O��
�&�)�)�A�-�.�	����
�
�&�2�:�:�&�	%��	%�,:�:�*8��8����H(�H(�^��(P
�	�f%�� >
�	�B	��7
�	�t	
��7
�	�t.��@
�	�FQ��T��Q��
L�	�.#��.#��.#��.#��	.#�
�.#��
.#��.#�
�.#��.#��.#��.#��.#��.#��.#��.#� �!.#�"�#.#�$�%.#�&
�'.#�(�).#�*�+.#�,�-.#�.�/.#�0�1.#�2�3.#�4�5.#�6�7.#�8�9.#�:�;.#�<�=.#�@�A.#�B�C.#�D�E.#�F�G.#�H�I.#�J
�K.#�L�M.#�N�O.#�P�Q.#�R�S.#�T�U.#�V�W.#�X�Y.#�Z�[.#��`<��,�
�

�*]!�]!�@n7�n7�bW:�/�W:�t>|�|�~	�)�	����~��
�<�
�
��
.�.�v9�v9�r%7�%7�P O� O�Fp�p�h�� �&� �$�&�$�	"���0?(�?(�DqG�qG�h�z����
�A�
�6�*�*�1�,�
-���L�L��A���
�m�"�"�1�%�&��q�#�a�&�"�%�A��a��!�B�$�i� �A��+�$�$�Q�'�(�&�	�c�
�
��
�(�/�/��2�3�
�&�-�-�a�0�1��A��
�h��
��.�	��YW���K���.
)�	(����	
�B��sB�M0�$N�+M?�0N�0M<�;M<�?
N�	N�N�N�N

Youez - 2016 - github.com/yon3zu
LinuXploit