python (3.12.0)

(root)/
lib/
python3.12/
test/
__pycache__/
pickletester.cpython-312.opt-1.pyc

͑e/5

ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlZddlZddlmZddlmZ	ddlZddlmZddlmZddlmZmZmZmZmZm Z ddl!m"Z"ddl#m$Z$dd	lm%Z%dd
l&m'Z'ddlm(Z(	e'5ddl)Z*dddejVejXdkd
Z-e.ej^dzZ0dZ1dZ2dZ3GddejhZ5Gdde6Z7GddZ8GddZ9Gdde9Z:Gdde9Z;GddZ<Gd d!Z=ddl>Z>e9e>_9d"e9_?e:e>_:d"e:_?e;e>_;d"e;_?Gd#d$e@ZAGd%d&e9ZBGd'd(eCZDGd)d*e6eD+ZEGd,d-eCZFd.ZGGd/d0eHZIGd1d2eJZKe
Gd3d4ZLd5ZMd6ZNd7ZOd8ZPd9ZQd:ZRd;ZSd<ZTd=ZUd>ZVd?ZWd@ZXdAZYdBZZge[e\e]e^e_e`eaebecedeeefegeheeiejekelemeneoepeqereseteuevewexeyeze{e|e}e~eeeeeeeZdCZdDZdEZGdFdGZGdHdIZGdJdKZGdLdMe6ZGdNdOe6ZGdPdQe6ZGdRdSe6ZGdTdUe6ZGdVdWe6ZGdXdYe6ZGdZd[e6ZGd\d]e@ZGd^d_eZGd`daeZGdbdceZGdddeeZGdfdgeZGdhdieZGdjdkeZGdldmeZGdndoeZeeeeeeeeeeg
ZGdpdqe@ZGdrdseZGdtdueZGdvdwe@aGdxdytVZGdzd{tVZGd|d}ZGd~dZGddZGddZGddZdZGdde6ZGdde6ZdZGddZGddZGddZed"k(rddl	mZeZe.ej^dzD]Zej|eeZedjee.deedD](ZeHeeedzZedjeī*edeedjeedjeeeedeyy#e$rdZYwxYw#1swYPxYw#e$rdZ*Y]wxYw)N)dedent)SimpleCookie)support)	os_helper)
TestFailedrun_with_locale
no_tracing_2G_4G
bigmemtest)forget)TESTFN)threading_helper)save_restore_warnings_filters)bytes_typeslz(test is only meaningful on 32-bit buildsctj|D]&\}}}|j|jdk(s&yy)Nlatin-1TFpickletoolsgenopscodedecode)rpickleopdummys    E/BuggyBox/python/3.12.0/bootstrap/lib/python3.12/test/pickletester.pyopcode_in_pickler;s@'..v6E5
77dkk),,cd}tj|D]*\}}}|j|jdk(s&|dz
},|S)Nrrrr)rrnrrs     rcount_opcoder"BsM	A'..v6E5
77dkk),,
FA
Hrc|SNxs ridentityr(JsHrc$eZdZdZdZdZdZy)UnseekableIOctr$)NotImplementedErrorselfargss  rpeekzUnseekableIO.peekOs!!rcy)NFr%r.s rseekablezUnseekableIO.seekableRsrc"tjr$ioUnsupportedOperationr-s  rseekzUnseekableIO.seekU%%%rc"tjr$r5r2s rtellzUnseekableIO.tellXr9rN)__name__
__module____qualname__r0r3r8r;r%rrr*r*Ns"&&rr*ceZdZdZdZy)	MinimalIOz=
    A file-like object that doesn't support readinto().
    c
tj||_|jj|_|jj|_|jj
|_|jj|_yr$)r6BytesIO_biogetvaluereadreadlinewriter-s  r__init__zMinimalIO.__init__`sRJJ%			**
IINN			**
YY__
rN)r<r=r>__doc__rHr%rrr@r@\s%rr@ceZdZdZdZy)ExtensionSaverc||_|tjvrJtj||_tj|jd|jd|yd|_yNrr)rcopyreg_inverted_registrypairremove_extension)r.rs  rrHzExtensionSaver.__init__usR	7---2248DI$$TYYq\499Q<FDIrc|j}tjj|}|tj|d|d||j
}|tj|d|d|yyrM)rrNrOgetrQrP
add_extension)r.rcurpairrPs    rrestorezExtensionSaver.restore~soyy,,006$$WQZTByy!!$q'47D9rN)r<r=r>rHrVr%rrrKrKrs:rrKceZdZdZy)Cc4|j|jk(Sr$)__dict__r.others  r__eq__zC.__eq__s}}..rN)r<r=r>r]r%rrrXrXs/rrXceZdZdZy)Dcyr$r%)r.args  rrHz
D.__init__rNr<r=r>rHr%rrr_r_s
rr_ceZdZdZy)EcyNr%r%r2s r__getinitargs__zE.__getinitargs__srN)r<r=r>rhr%rrreresrreceZdZy)ObjectNr<r=r>r%rrrjrjrrjceZdZdZdZy)Kc||_yr$)value)r.rps  rrHz
K.__init__	
rc(t|jffSr$)rnrpr2s r
__reduce__zK.__reduce__s4::-rN)r<r=r>rHrsr%rrrnrns rrn__main__ceZdZdZy)myintc$t||_yr$str)r.r's  rrHzmyint.__init__s
q6rNrcr%rrrvrvsrrvceZdZdZdZy)initargc ||_||_yr$ab)r.r~rs   rrHzinitarg.__init__src2|j|jfSr$r}r2s rrhzinitarg.__getinitargs__svvtvv~rN)r<r=r>rHrhr%rrr{r{srr{ceZdZy)	metaclassNrkr%rrrrrlrrceZdZy)
use_metaclassNrkr%rrrrrlrr)rceZdZdZdZy)pickling_metaclasscft|t|k(xr|j|jk(Sr$)typereduce_argsr[s  rr]zpickling_metaclass.__eq__s0T
d5k)6  E$5$55	7rc&t|jfSr$)create_dynamic_classrr2s rrszpickling_metaclass.__reduce__s$d&6&677rN)r<r=r>r]rsr%rrrrs78rrcBt||t}||f|_|Sr$)rdictr)namebasesresults   rrrs#
eTV
4FFMrc<eZdZdZdZdZdZdZdZeZ	e
dZy)
ZeroCopyBytesTc|dk\r,t|jtj|fdfSt|jt	|ffSNr_reconstructrPickleBufferbytesr.protocols  r
__reduce_ex__zZeroCopyBytes.__reduce_ex__Iq=:**V-@-@-F,H$NN:**U4[N::rc`dj|jjt|SNz{}({!r})format	__class__r<rr2s r__repr__zZeroCopyBytes.__repr__#  !8!8%+FFrct|5}|j}t||ur|cdddS||cdddS#1swYyxYwr$
memoryviewobjrclsrms   rrzZeroCopyBytes._reconstructK
_	 %%CCyC		 	 3x
	 	 	 AAANr<r=r>readonlyc_contiguousf_contiguouszero_copy_reconstructrr__str__classmethodrr%rrrrs;HLL ;GG  rrc<eZdZdZdZdZdZdZdZeZ	e
dZy)ZeroCopyBytearrayFTc|dk\r,t|jtj|fdfSt|jt	|ffSrrrs  rrzZeroCopyBytearray.__reduce_ex__rrc`dj|jjt|Srrr2s rrzZeroCopyBytearray.__repr__rrct|5}|j}t||ur|cdddS||cdddS#1swYyxYwr$rrs   rrzZeroCopyBytearray._reconstructrrNrr%rrrrs;HLL ;GG  rrcteZdZdZdZdZedZedZedZ	dZ
dZd	Zd
Z
edZy)
PicklableNDArrayFc8tj|i||_yr$)_testbufferndarrayarrayr.r/kwargss   rrHzPicklableNDArray.__init__	s$,,d=f=DJrcft|}|j|}|j||_|Sr$)r__new__r)r.idxrnews    r__getitem__zPicklableNDArray.__getitem__s-t*C++c"C

3CIJrc.|jjSr$)rrr2s rrzPicklableNDArray.readonlys::&&&rc.|jjSr$)rrr2s rrzPicklableNDArray.c_contiguous::***rc.|jjSr$)rrr2s rrzPicklableNDArray.f_contiguousrrct|tstS|jj|jjk(xr|jj
|jj
k(xr|jj|jjk(xrd|jj|jjk(xr5|jj|jjk(Sr$)	
isinstancerNotImplementedrrshapestridesrtobytesr[s  rr]zPicklableNDArray.__eq__se%56%%KK&&$***;*;;BKK%%)9)99BKK''4::+=+==BKK((DJJ,?,??BKK'')TZZ-?-?-AA	
Crc:t|tstS||k(Sr$)rrrr[s  r__ne__zPicklableNDArray.__ne__'s e%56%%
&&rct|d|jjd|jjd|jj	dS)Nz(shape=z	,strides=z, bytes=))rrrrrr2s rrzPicklableNDArray.__repr__,sUDzl'$***:*:);<#zz1123!ZZ//12!5
6rc|jjstd|jj|jj|jj
|jrdntjd}tj|j}|dk\rt|j||ffS|j5}t|j|j|ffcdddS#1swYyxYw)Nz>Reconstructing a non-contiguous ndarray does not seem possibler)rrrflagsr)r
contiguousr,rrrrrND_WRITABLErrrrrawr)r.rndarray_kwargspbrs     rrzPicklableNDArray.__reduce_ex__1s::(()+KLL'+zz'7'7)-););(,

(9(9-1]]-8-D-D	GN
$$TZZ0B1}T
//^,..VVX; J33YY[.9;;;;s'C??Dct|5}t|j}ddd|fi|S#1swYxYwr$)rlistr)rrrritemss     rrzPicklableNDArray._reconstructDsDC
*AQYY[)
*u'''	
*
*s	7AN)r<r=r>rrHrpropertyrrrr]rrrrrr%rrrrsy!&	>	
	'
	'
	+
	+
	+
	+	C	'
	6
	;&
	(
	(rrs;(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@GtqRqKJKJJMJJJJJ(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@GqRqKJKJJMJJJJJ(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@GqRqKJKJJMJJJJJ(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@builtinscomplexG@GRKJKJJMJJJJJ(abch__main__C)}(barKfooKubh
thKe.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(KKeqRq.s%c__builtin__
xrange
qKKKqRq.scCookie
SimpleCookie
q)qUkeyqcCookie
Morsel
q)q(UcommentqUqUdomainqhUsecureqhUexpiresq	hUmax-ageq
hUversionqhUpathqhUhttponlyq
hu}q(Ucoded_valueqUvalueqhhhhubs}qb.s"c__builtin__
set
q]qKaqRq.scexceptions
?
q)Rq.sIcexceptions
UnicodeEncodeError
q(UasciiqXfooqKKUbadqtqRq.ct}d|_d|_gd}d}d}d}|jdd|||dz
|||dz
|||dz
gdd||f}|j	||j	||j	d	|S)
Nr)rrg@y@abcr)rXfoobarextendappend)cr'uint1maxuint2maxint4maxys      rcreate_datar,s	A
AE
AEAHHGHHa	H9Q;	H9Q;'WHQJ01
q!AHHQKHHQKHHQKHrceZdZeZd/dZdZdZdZdZ	dZ
dZd	Zd
Z
dZdZd
ZdZdZdZdZdZedZedZdZdZdZdZdZedZedZedZ dZ!dZ"dZ#d Z$d!Z%ed"Z&d#Z'd$Z(d%Z)d&Z*d'Z+d(Z,d)Z-d*Z.d+Z/d,Z0d-Z1e2jfe2jhd.Z5y)0AbstractUnpickleTestsNc	|dj||}|j||||jt|t||t	|drP|j|j|j||j|j|j|t	|dr|j|j|j||jD]T}|jt	||t	||||jt||dt||d|Vyy)zKUtility method to verify if two objects are copies of each others.
        Nz{!r} is not a copy of {!r})msgrZ	__slots__)rassertEqualassertIsrhasattrassertDictEqualrZassertIsNotassertListEqualrgetattr)r.robjcopyrslots     rassert_is_copyz$AbstractUnpickleTests.assert_is_copyFs+;.55c7CCg3/

d3igC
83
#  w/?/?S IS\\7+;+;E3$  0A0As K


H  C&(>C!I  dD!9!($!=3!H
H%rc
^|j|5|j|5	|j|	ddddddy#t$rA}tj
dkDr(t
|dd|jjd|d}~wwxYw#1swY_xYw#1swYyxYw)N)datar32z - z: )	subTestassertRaisesloads
BaseExceptionrverboseprintrr<)r.errorsrexcs    rcheck_unpickling_errorz,AbstractUnpickleTests.check_unpickling_errorXs
\\t\
$	


v
&	


4 			!
??Q&!7!7>?	
					s>B#BA
B#
	B<BBBB 	B##B,cb|j|j|jtyr$)r	_testdatarDATA0r2s rtest_load_from_data0z*AbstractUnpickleTests.test_load_from_data0cDNNDJJu,=>rcb|j|j|jtyr$)rr
rDATA1r2s rtest_load_from_data1z*AbstractUnpickleTests.test_load_from_data1frrcb|j|j|jtyr$)rr
rDATA2r2s rtest_load_from_data2z*AbstractUnpickleTests.test_load_from_data2irrcb|j|j|jtyr$)rr
rDATA3r2s rtest_load_from_data3z*AbstractUnpickleTests.test_load_from_data3lrrcb|j|j|jtyr$)rr
rDATA4r2s rtest_load_from_data4z*AbstractUnpickleTests.test_load_from_data4orrctdftdftdffD]\}}|jj	d}	djd|}|j
|||j|	djd|}|j
|||j|	djd|}|j
|||j|y)Nr%r&asciis(i__main__
X
p0
(dp1
b.Xs(c__main__
X
qoq}qb.s(c__main__
X
qoq}qb.)rXr_rer<encodereplacerr)r.Xr/xnamepickle0pickle1pickle2s       rtest_load_classic_instancez0AbstractUnpickleTests.test_load_classic_instancersB!Vq"g64	?GAtJJ%%g.E	
#%,GD%$8

4$**W*=>

./6wtU/C

4$**W*=>
./6wtU/C

4$**W*=>i4	?rcd}dt|jdzdz}|j|}|j||dt|jdzdz}|j	t
|y)NlIr
.sJUNK
.)ryr rrr
ValueError)r.maxint64rgots    r
test_maxint64z#AbstractUnpickleTests.test_maxint64ss c(m**733f<jjHc*c(m**733j@##J5rc|jt}|j|tddg|jt}|jt|tt
d|jt|tt
d|jt}|jt|t|jt|jdg|j|djdtD]]}tjd|jj!d}|j|}|j#t||_|jtjdd	}|j#t|t$|jt&}|j#t|t(|j|j*d
|j|j,d|j|j.d|j|j0d|j|j2dy)Nrrrrkeyrp?r
StandardErrorrbad)rDATA_SETrsetDATA_XRANGErrangerDATA_COOKIErkeysrppython2_exceptions_without_argsexception_pickler!r<r r	Exception
DATA_UEERRUnicodeEncodeErrorobjectencodingstartendreason)r.loadedr
rs    rtest_unpickle_from_2xz+AbstractUnpickleTests.test_unpickle_from_2xsH%aV-K(ftE!H~6ftE!H~6K(f|4fkkm,ug6,,g63	-C#++D#,,2E2Eg2NODZZ%FMM$v,,	-,44T;KLM

d6lI.J'

d6l$67.'2q)Q'.rc|j|jddd|j|jddd|j|jdddy)NsS'a\x00\xa0'
.rr@sasUa.sUa.rrr2s rtest_load_python2_str_as_bytesz4AbstractUnpickleTests.test_load_python2_str_as_bytess~$8-4$67C	E	
$6-4$67C	E	
$>-4$67C	Erc|j|jddd|j|jddd|j|jdddy)Ns	V\u03c0
.rrGuπsXπ.s
Xπ.rHr2s r test_load_python2_unicode_as_strz6AbstractUnpickleTests.test_load_python2_unicode_as_strszN-4$67;	=	
$A-4$67;	=	
$I-4$67;	=rc	|j|jtjt	j
ddzdztjzddy)N<Ii,s,xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxrrG)rrr	BINSTRINGstructpackSTOPr2s r#test_load_long_python2_str_as_bytesz9AbstractUnpickleTests.test_load_long_python2_str_as_bytess[F$4$4$*KKc$:%;$.%/17%=.5$68B	CrcL|j|jd|j|jdd|j|jdd|j|jdd|j|jddy)NsN.s.Ts.FsI01
.sI00
.)assertIsNonerrr2s rtest_constantsz$AbstractUnpickleTests.test_constantssu$**U+,

djj*D1

djj*E2

djj+T2

djj+U3rcN|jdd}|j|dy)NsUq.zkoi8-rrG)rr)r.emptys  rtest_empty_bytestringz+AbstractUnpickleTests.test_empty_bytestrings%

1H
E#rcJd}|j|j|dy)Ns	C€.€rHr.dumpeds  rtest_short_binbytesz)AbstractUnpickleTests.test_short_binbytess!2F+-@ArcJd}|j|j|dy)NsB€.r[rHr\s  r
test_binbytesz#AbstractUnpickleTests.test_binbytess!>F+-@ArcTd}|jtjtf|y)Ns
Bxyzq.rrUnpicklingError
OverflowErrorr\s  rtest_negative_32b_binbytesz0AbstractUnpickleTests.test_negative_32b_binbytes'7##V%;%;]$K$*	,rcTd}|jtjtf|y)Ns
Xxyzq.rbr\s  rtest_negative_32b_binunicodez2AbstractUnpickleTests.test_negative_32b_binunicoderfrcJd}|j|j|dy)Ns	€.€rHr\s  rtest_short_binunicodez+AbstractUnpickleTests.test_short_binunicodes 5F+\:rc
|jtjd|jtjd|jtjd|jddg|j	dy)Nsg0
p0sjens:shens:)ds((Kdtp0
hl.)))rrrcrrr2s r
test_misc_getz#AbstractUnpickleTests.test_misc_getsf##F$:$:IF##F$:$:HE##F$:$:HEVV, JJ'<=	?rcJd}|j|j|dy)Ns€.r[rHr\s  rtest_binbytes8z$AbstractUnpickleTests.test_binbytes8s!AF+-@ArcJd}|j|j|dy)Ns€.rjrHr\s  rtest_binunicode8z&AbstractUnpickleTests.test_binunicode8!s AF+\:rc\d}|j|j|tdy)Nsxxx.sxxx)rr	bytearrayr\s  rtest_bytearray8z%AbstractUnpickleTests.test_bytearray8%s%DF+Yv->?rcTd}|jtjtf|y)Ns€.rbr\s  rtest_large_32b_binbytes8z.AbstractUnpickleTests.test_large_32b_binbytes8)%A##V%;%;]$K$*	,rcTd}|jtjtf|y)Ns€.rbr\s  rtest_large_32b_bytearray8z/AbstractUnpickleTests.test_large_32b_bytearray8/rxrcTd}|jtjtf|y)Ns€.rbr\s  rtest_large_32b_binunicode8z0AbstractUnpickleTests.test_large_32b_binunicode85rxrcd}|j|}|j|gfdz|j|d|dy)Ns((lp100000
g100000
t.rrrrrrr.pickled	unpickleds   rtest_getzAbstractUnpickleTests.test_get;sA,JJw'	RE!G,

ilIaL1rcd}|j|}|j|gfdz|j|d|dy)Ns(]qht.rrrr~rs   rtest_bingetz!AbstractUnpickleTests.test_bingetAsA#JJw'	RE!G,

ilIaL1rcd}|j|}|j|gfdz|j|d|dy)Ns(]rjt.rrrr~rs   rtest_long_bingetz&AbstractUnpickleTests.test_long_bingetGsA;JJw'	RE!G,

ilIaL1rcd}|j|}|j|gfdz|j|d|dy)Ns((l2t.rrrr~rs   rtest_dupzAbstractUnpickleTests.test_dupMsAJJw'	RE!G,

ilIaL1rc4d}|jt|y)NsVa
p-1
.rr+r\s  rtest_negative_putz'AbstractUnpickleTests.test_negative_putSs##J7rc4d}|jt|y)NsXar.rr\s  rtest_negative_32b_binputz.AbstractUnpickleTests.test_negative_32b_binputXsA##J7rc0|jtdy)NsS'\'
.rr2s rtest_badly_escaped_stringz/AbstractUnpickleTests.test_badly_escaped_string^s##J<rcZgd}|D]"}|jtj|$y)N)
sS'
.sS"
.sS' 
.sS" 
.sS'"
.sS"'
.sS' ' 
.sS" " 
.sS ''
.sS ""
.sS 
.sS
.sS.)rrrcr.
badpicklesps   rtest_badly_quoted_stringz.AbstractUnpickleTests.test_badly_quoted_stringas2
	CA''(>(>B	Crcbgd}|D]&\}}|j|j||(y)N))sS''
.rW)sS""
.rW)sS"\n"
.
)sS'\n'
.rrH)r.goodpicklesrexpecteds    rtest_correctly_quoted_stringz2AbstractUnpickleTests.test_correctly_quoted_stringss6-'	6KAxTZZ]H5	6rcJd}|j|j|dy)NsI42
.*rH)r.rs  rtest_frame_readlinez)AbstractUnpickleTests.test_frame_readline{s"G
	
G,b1rc2d}|j|}|jt|t|j	|tdd|j	t|gdd}|j|j|tjd}|j|j|tjdD]U}d|zd	z}|j|}|jt|t|j	t|d
WdD]k}d|zd
z}|j|}|jt|tj|j	|tjddimy)Nsc__builtin__
xrange
KKKR.r)rrrsc__builtin__
reduce
.scwhichdb
whichdb
.)s	Exceptionr2scexceptions
s	
UughR.ugh)sUserDictsIterableUserDicts
(cUserDict
s
o}Udata}KKssb.r)rrrr7rr	functoolsreducedbmwhichdbr<rycollectionsUserDict)r.rrrs    rtest_compat_unpicklez*AbstractUnpickleTests.test_compat_unpicklesQHJJw'	

d9ou-E!QK0i*<=4

djj)9+;+;<1

djj)3;;74	4D/$69LLG

7+IMM$y/95S^U3		47	FD.567G

7+IMM$y/;+?+?@Y(<(<aV(DE	Frc|j|jdd|jtd|jtdy)Nscbuiltins
int
)R.rsN)R.scbuiltins
int
NR.)rrr	TypeErrorr2s rtest_bad_reducez%AbstractUnpickleTests.test_bad_reduces=$:;Q?##Iw7##I/EFrctjtf}|j|j	dd|j|d|j|dy)Nscbuiltins
int
).rscbuiltins
len
).scbuiltins
int
N.rrcrrrrr.errors  rtest_bad_newobjz%AbstractUnpickleTests.test_bad_newobjsN''3$=>B##E+DE##E+DErctjtf}|j|j	dd|j|d|j|d|j|dy)Nscbuiltins
int
)}.rscbuiltins
len
)}.scbuiltins
int
N}.scbuiltins
int
)N.rrs  rtest_bad_newobj_exz(AbstractUnpickleTests.test_bad_newobj_exs_''3$>?C##E+EF##E+EF##E+EFrcRgd}|D]}|j|j| y)N),.012s(2Rs)RasNabsNbdes(esibuiltins
list
los(osp1
sqsrssNssNNstus(us}(Nus)sNsNsNNs(s)}sVlist
rbad_stack_errorsrs   rtest_bad_stackz$AbstractUnpickleTests.test_bad_stacks3-

\	BA''(=(=qA	BrcRgd}|D]}|j|j| y)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(NsNNN(sNN(NsN(NNs]((scbuiltins
list
)}(scbuiltins
list
)(}scbuiltins
list
()}sVbuiltins
(Vlist
sVbuiltins
Vlist
(sN(rrs   r
test_bad_markz#AbstractUnpickleTests.test_bad_marks3"

F	BA''(=(=qA	Brc|jtd|jtdgd}|D]}|j|j| y)NrN)UBsBsBsBabCsCsCabFsF0.0sF0.00GsGr)sI0JsJKLsL0sL10sL0LsL10LMsMSsS'abc'TsTsTsTabUsUsUabVsVabcrsXsXsXabs(cs
(cbuiltinss(cbuiltins
s(cbuiltins
listsNgsNg0s(is
(ibuiltinss(ibuiltins
s(ibuiltins
listsNhsNjsNjsNpsNp0sNqsNrsNrsssssabss	sabss	sabss	sabss	s
N)rEOFErrortruncated_errorsrs   rtest_truncated_dataz)AbstractUnpickleTests.test_truncated_data	sT##Hc2##Hd3X

r	BA''(=(=qA	Brc 
td}td}tjt|j	t
jttjjdt|j	tjjtttjjtdd5}|j|jddddttjjtdd5}|j|jdddd|j	td|j	td	ddl}d
gt#j$d

fd}t#j&|
}t#j&|
}|j)|j)
j+|j,j+|j|jddlm}|j3D	cgc]
}	t5|	c}	|gdzy#1swY{xYw#1swY1xYwcc}	w)NzI
        import threading
        barrier = threading.Barrier(2)
        zs
        import locker
        locker.barrier.wait()
        class ToBeUnpickled(object):
            pass
        rz	locker.pywbutf-8zlocking_import.pylockerlocking_imports'clocking_import
ToBeUnpickled
q)q.rcnjjtjyr$)waitrrr)barrierpickle_bytesresultssrtz:AbstractUnpickleTests.test_unpickle_module_race.<locals>.ts#
LLNNN6<<56r)target)
ToBeUnpickledr)rosmkdirr
addCleanupshutilrmtreesyspathinsertremoveopenjoinrGr r
r	threadingBarrierThreadrArrrrrr)
r.
locker_modulelocking_import_modulefrrt1t2rr'rrrs
          @@@rtest_unpickle_module_racez/AbstractUnpickleTests.test_unpickle_module_racehs 

!'(!
	

v.6"0
"'',,v{3T
:	3a
GGM((12	3
"'',,v':;T
B	;a
GG)009:	;) 01
H	##A&	7

Q
'


Q
'




	
	0%&T!W&
Oa	!M	3	3	;	;J
's!I1.!I>J1I;>Jr$)6r<r=r>rr
rrrrrrrr'r.rErIrKrRrUrYr^r`requires_32brerhrkrnrprrrurwrzr|rrrrrrrrrrrrrrrrrrreap_threadsrequires_working_threadingr
r%rrrrAs
IH$	?????7?r6/<	E	=C4$
BB,,,,;?B;@,,
,,
,,
22228
88
=C$62F6G
FG0Bd%BN]B~""00029!3#9!rrc
eZdZdZej
ZdZejZdZdZ	dZ
edfdZdZ
d	Zd
ZedfdZdZd
ZdZedfdZdZdZdZedfdZdZdZdZedfdZdZdZdZedfdZ dZ!dZ"dZ#dZ$d Z%d!Z&d"Z'd#Z(d$Z)d%Z*d&Z+d'Z,d(Z-d)Z.d*Z/d+Z0d,Z1d-Z2d.Z3d/Z4d0Z5d1Z6d2Z7d3Z8d4Z9d5Z:d6Z;e<d7d8d9d:Z=d;Z>d<Z?d=Z@d>ZAd?ZBd@ZCdAZDdBZEdCZFdDZGdEZHdFZIdGZJdHZKdIZLdJZMdKZNdLZOdMZPdNZQdOZRdPZSdQZTdRZUdSZVdTZWdUZXdVZYdWZZdXZ[dYZ\dZZ]d[Z^d\Z_d]Z`d^Zad_Zbd`ZceddaZedbZfdcZgddZhdeZidfZjdgZkdhZldiZmdjZndkZodlZpdmZqerjerjdndoZudpZvdqZwerjdrZxdsZydtZzduZ{dvZ|dwZ}dxZ~dyZdzZd{Zd|Zd}Zd~ZdZdZejeduddZdZdZy)AbstractPickleTestsFcyr$r%r2s rsetUpzAbstractPickleTests.setUprbrctD]}td}|j||}|j|}|j	||d}|j||}|j|}|j	||td|}|j||}|j|}|j	||y)Nr)rr%r)	protocolsrvdumpsrrr{r.protor'srs     r	test_misczAbstractPickleTests.test_miscs	&EaA

1e$A

1
A1%A

1e$A

1
A1%1
A

1e$A

1
A1%	&rc|j}tD]7}|j||}|j|}|j	||9yr$)r
rrrr)r.rrrr-s     rtest_roundtrip_equalityz+AbstractPickleTests.test_roundtrip_equalitysG>>	/E

8U+A**Q-C#.	/rcddlm}ddlm}dtfdt
ffD]T\}}|j
|j|}|}||||j}|j||Vy)Nr)StringIOdisr)out)
r6rrr!	DATA0_DIS	DATA1_DISrr
rDr)r.rr!rrrfileliker-s        rdont_test_disassemblyz)AbstractPickleTests.dont_test_disassemblysk# !9~9~=	,OE8

4>>51AzHx ##%CXs+	,rrcR|}|j|t|tjdzD]o}|j	||}|j|}|j
||||}|jt|d|j|d|qyNrr)
rr7rHIGHEST_PROTOCOLrrassertIsInstancerlenr)	r.raslistminprotocollrrr'rs	         r_test_recursive_listz(AbstractPickleTests._test_recursive_listsE	;(?(?!(CD	#E

1e$A

1
A!!!S)q	ASVQ'MM!A$"
	#rc.|jtyr$)r/rr2s rtest_recursive_listz'AbstractPickleTests.test_recursive_list!!$'rc2|jtdyNr)r-)r/MyListr2s rtest_recursive_list_subclassz0AbstractPickleTests.test_recursive_list_subclass!!&a!8rc4|jtdy)Nc|jSr$rr&s r<lambda>z>AbstractPickleTests.test_recursive_list_like.<locals>.<lambda>s
AGGrr,)r/REX_sixr2s rtest_recursive_list_likez,AbstractPickleTests.test_recursive_list_likes!!'2C!Drcb|f}|dj|t|tjdzD]}|j	||}|j|}|j
|t|jt|d|j
|d|||d}|jt|d|j|d||\}t|tjdzD]}|j	||}|j|}|j
||||}|jt|d|j
|dt|jt|dd|j|dd|yrM)rr7rr)rrr*tuplerr+r)	r.rr,r-rrrr'rs	         r_test_recursive_tuple_and_listz2AbstractPickleTests._test_recursive_tuple_and_listsy
UH	!A;(?(?!(CD	#E

1e$A

1
A!!!U+SVQ'!!!A$,qtASVQ'MM!A$"	#;(?(?!(CD	&E

1e$A

1
A!!!S)q	ASVQ'!!!A$.S1Y*MM!A$q'1%	&rc.|jtyr$)rArr2s rtest_recursive_tuple_and_listz1AbstractPickleTests.test_recursive_tuple_and_list++D1rc2|jtdyr4)rAr5r2s r&test_recursive_tuple_and_list_subclassz:AbstractPickleTests.test_recursive_tuple_and_list_subclass++F+Brc4|jtdy)Nc|jSr$r:r&s rr;zHAbstractPickleTests.test_recursive_tuple_and_list_like.<locals>.<lambda>s
aggrr<)rAr=r2s r"test_recursive_tuple_and_list_likez6AbstractPickleTests.test_recursive_tuple_and_list_likes++G<M+NrcX|}||d<t|tjdzD]~}|j||}|j	|}|j||||}|j
t|jdg|j|d|yNr)
r7rr)rrr*rrr9r	r.rasdictr-drrr'rs	         r_test_recursive_dictz(AbstractPickleTests._test_recursive_dictsE!;(?(?!(CD	#E

1e$A

1
A!!!S)q	AT!&&(^aS1MM!A$"
	#rc.|jtyr$)rPrr2s rtest_recursive_dictz'AbstractPickleTests.test_recursive_dict#r2rc2|jtdyr4)rPMyDictr2s rtest_recursive_dict_subclassz0AbstractPickleTests.test_recursive_dict_subclass&r7rc4|jtdy)Nc|jSr$tabler&s rr;z>AbstractPickleTests.test_recursive_dict_like.<locals>.<lambda>*s
aggrrN)rP	REX_sevenr2s rtest_recursive_dict_likez,AbstractPickleTests.test_recursive_dict_like)s!!)4E!FrcN|f}||dd<t|tjdzD]}|j||}|j	|}|j|t|jt|d|j|d|||d}|jt|dg|j|d||\}t|tjdzD]}|j||}|j	|}|j||||}|jt|dg|j|dt|jt|dd|j|dd|yrM)r7rr)rrr*r@rr+rr	r.rrNr-rrrr'rs	         r_test_recursive_tuple_and_dictz2AbstractPickleTests._test_recursive_tuple_and_dict,s{
UH!Q;(?(?!(CD	#E

1e$A

1
A!!!U+SVQ'!!!A$,qtAT!Wqc*MM!A$"	#;(?(?!(CD	&E

1e$A

1
A!!!S)q	AT!Wqc*!!!A$.S1Y*MM!A$q'1%	&rc.|jtyr$)r_rr2s rtest_recursive_tuple_and_dictz1AbstractPickleTests.test_recursive_tuple_and_dictFrDrc2|jtdyr4)r_rTr2s r&test_recursive_tuple_and_dict_subclassz:AbstractPickleTests.test_recursive_tuple_and_dict_subclassIrGrc4|jtdy)Nc|jSr$rXr&s rr;zHAbstractPickleTests.test_recursive_tuple_and_dict_like.<locals>.<lambda>Ms
rrZ)r_r[r2s r"test_recursive_tuple_and_dict_likez6AbstractPickleTests.test_recursive_tuple_and_dict_likeLs++I>O+Prc
|}d|t|<t|tjdzD]}|j	||}|j|}|j
||||}|jt|jd|j
t|jdt|jt|jdj|yr()
rnr7rr)rrr*rr+r9rrrprMs	         r_test_recursive_dict_keyz,AbstractPickleTests._test_recursive_dict_keyOs
E!A$;(?(?!(CD	6E

1e$A

1
A!!!S)q	AS]A.!!$qvvx."3Q7MM$qvvx.+1115	6rc.|jtyr$)rhrr2s rtest_recursive_dict_keyz+AbstractPickleTests.test_recursive_dict_key]s%%d+rc2|jtdyr4)rhrTr2s r test_recursive_dict_subclass_keyz4AbstractPickleTests.test_recursive_dict_subclass_key`s%%f!%<rc4|jtdy)Nc|jSr$rXr&s rr;zBAbstractPickleTests.test_recursive_dict_like_key.<locals>.<lambda>ds
!''rrZ)rhr[r2s rtest_recursive_dict_like_keyz0AbstractPickleTests.test_recursive_dict_like_keycs%%i8I%Jrc2|f}d|dt|<t|tjdzD]}|j	||}|j|}|j
|t|jt|d|j
|d|||d}|jt|d|j
t|jdt|jt|jdj||\}t|tjdzD]}|j	||}|j|}|j
||||}|jt|d|j
t|jdt|jt|jdjd|yr()rnr7rr)rrr*r@rr+rr9rrpr^s	         r"_test_recursive_tuple_and_dict_keyz6AbstractPickleTests._test_recursive_tuple_and_dict_keyfsUH!QqT
;(?(?!(CD		6E

1e$A

1
A!!!U+SVQ'!!!A$,qtASVQ'!!$qvvx."3Q7MM$qvvx.+1115		6;(?(?!(CD	9E

1e$A

1
A!!!S)q	ASVQ'!!$qvvx."3Q7MM$qvvx.+11!4a8	9rc.|jtyr$)rqrr2s r!test_recursive_tuple_and_dict_keyz5AbstractPickleTests.test_recursive_tuple_and_dict_keys//5rc2|jtdyr4)rqrTr2s r*test_recursive_tuple_and_dict_subclass_keyz>AbstractPickleTests.test_recursive_tuple_and_dict_subclass_keys//A/Frc4|jtdy)Nc|jSr$rXr&s rr;zLAbstractPickleTests.test_recursive_tuple_and_dict_like_key.<locals>.<lambda>s
AGGrrZ)rqr[r2s r&test_recursive_tuple_and_dict_like_keyz:AbstractPickleTests.test_recursive_tuple_and_dict_like_keys//	BS/Trcdt}|jt|tdtj
dzD]}|j
||}|j|}|j|t|jt|d|jt|dt|jt|dj||\}tdtj
dzD]}|j
||}|j|}|j|t|j|jt|jt|jd|jt|jd|y)Nrrr)r5addrnr7rr)rrr*rr+rrrpr.rrrr's     rtest_recursive_setz&AbstractPickleTests.test_recursive_setsLE	ad1f559:	/E

1e$A

1
A!!!S)SVQ'!!$q'!*a0MM$q'!***A.
	/1f559:	/E

1e$A

1
A!!!Q'!!!''3/S\1-MM$qww-*A.
	/rc.t}||_tD]{}|j||}|j	|}|j|t|j
t|t||j|j|}yr$)	rjattrrrrr*rdirr)r.irrr's     rtest_recursive_instz'AbstractPickleTests.test_recursive_instsvH	%E

1e$A

1
A!!!V,SVSV,MM!&&!$	%rcg}d|i}t}||_|j|tD]}|j	||}|j|}|j
|t|jt|d|jt|dt||jt|djjdg|j|djd|yr()
rjr~rrrrr*rrr+rr9r)r.r.rOrrrr's       rtest_recursive_multiz(AbstractPickleTests.test_recursive_multis
qEH		+E

1e$A

1
A!!!T*SVQ'S1YA/T!A$)).."23aS9MM!A$))A,*	+rcFt}||g|_t|j}tD]}|j	||}|j|}|j
|j||jt|jd|j
t|jdt|jt|jd||j}tD]}|j	||}|j|}|j
|||jt|d|j
t|dt|jt|dj|yr()rjr~rrrrr*rr+rr)r.factoryorrrr's       r#_test_recursive_collection_and_instz7AbstractPickleTests._test_recursive_collection_and_insts@
H!L	.E

1e$A

1
A!!!&&!,S[!,!!$qvv,q/6:MM$qvv,q/1-
	.
FF	.E

1e$A

1
A!!!Q'SVQ'!!$q'!*f5MM$q'!*//1-
	.rc.|jtyr$)rrr2s rtest_recursive_list_and_instz0AbstractPickleTests.test_recursive_list_and_insts006rc.|jtyr$)rr@r2s rtest_recursive_tuple_and_instz1AbstractPickleTests.test_recursive_tuple_and_inst007rcB|jtjyr$)rrfromkeysr2s rtest_recursive_dict_and_instz0AbstractPickleTests.test_recursive_dict_and_insts00?rc.|jtyr$)rr5r2s rtest_recursive_set_and_instz/AbstractPickleTests.test_recursive_set_and_insts005rc.|jtyr$)r	frozensetr2s r!test_recursive_frozenset_and_instz5AbstractPickleTests.test_recursive_frozenset_and_insts00;rc.|jtyr$)rr5r2s r%test_recursive_list_subclass_and_instz9AbstractPickleTests.test_recursive_list_subclass_and_insts008rc.|jtyr$)rMyTupler2s r&test_recursive_tuple_subclass_and_instz:AbstractPickleTests.test_recursive_tuple_subclass_and_insts009rcB|jtjyr$)rrTrr2s r%test_recursive_dict_subclass_and_instz9AbstractPickleTests.test_recursive_dict_subclass_and_insts00Arc.|jtyr$)rMySetr2s r$test_recursive_set_subclass_and_instz8AbstractPickleTests.test_recursive_set_subclass_and_instrrc.|jtyr$)rMyFrozenSetr2s r*test_recursive_frozenset_subclass_and_instz>AbstractPickleTests.test_recursive_frozenset_subclass_and_insts00=rct}||_tD]W}|j||}|j	|}|j|t|j
|j|Yyr$)	REX_statestaterrrr*rr{s     rtest_recursive_inst_statez-AbstractPickleTests.test_recursive_inst_states^K	&E

1e$A

1
A!!!Y/MM!''1%		&rctf}||d_tD]}|j||}|j	|}|j|t|jt|d|j|dt|j|dj||\}tD]}|j||}|j	|}|j|t|j|jt|jt|jd|j|jd|yrM)
rrrrrr*r@rr+r)r.rrrr's     r#test_recursive_tuple_and_inst_statez7AbstractPickleTests.test_recursive_tuple_and_inst_states
[N!
	)E

1e$A

1
A!!!U+SVQ'!!!A$	2MM!A$**a(
	)	)E

1e$A

1
A!!!Y/!!!''51S\1-MM!''!*a(
	)rcgd}tD]>}|D]7}|j||}|j|}|j||9@y)N)rWz<\u>u<\ሴ>z<
>z<\>u<\𒍅>u<>rrrr)r.endcasesruru2s      rtest_unicodez AbstractPickleTests.test_unicodesV 	+E
+JJq%(ZZ]##Ar*
+	+rcd}tD]7}|j||}|j|}|j||9y)Nu𒍅r)r.rrrrs     rtest_unicode_high_planez+AbstractPickleTests.test_unicode_high_planesC	'E

1e$AAB2&	'rctD]}dD]5}|j||}|j||j|7t	dDcgc]}t|gc}D]5}|j||}|j||j|7t	dDcgc]}t||gc}D]5}|j||}|j||j|7ycc}wcc}w)Nrxyzs,xyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyz)rrrrr7r)r.rrrrs     r
test_byteszAbstractPickleTests.test_bytes$s		6E,
6JJq%(##Atzz!}5
6+0*5QeQCj5
6JJq%(##Atzz!}5
6.33Z8eQFm8
6JJq%(##Atzz!}5
6		669sC>,DcZtD]!}dD]}t|}|j||}|j|}|j	|||j|||dkr<|j
d||jttj||dk(r<|j
d||jttj||dk(s|jd||jttj|$y)Nrrs	bytearrayrr)rrtrrrrassertIn
assertTruerrGLOBALSTACK_GLOBALassertNotIn
BYTEARRAY8)r.rrrrbbs      rtest_bytearrayz"AbstractPickleTests.test_bytearray0s	LE,
LaLJJq%(ZZ]  Q'##Ar*A:MM,2OO$4V]]A$FGaZMM,2OO$4V5H5H!$LMaZ$$\15OO$4V5F5F$JK
L	LrctD]N}dD]G}t|}|j||f|}|j|\}}|j	||IPy)Nr)rrtrrr)r.rrrrb1b2s       rtest_bytearray_memoization_bugz2AbstractPickleTests.test_bytearray_memoization_bugCs\	&E,
&aLJJ1vu-AB

b"%	
&	&rctD]\}tj}|s||fD]7}|j||}|j	|}|j||9|dz	}|rG^yrL)rrmaxsizerrr)r.rr!rrn2s      r	test_intszAbstractPickleTests.test_intsKso	EA"#Q6H

8U3AAB''"56F	rctD]]}dD]V}d|z}|dz
||dzfD]A}||fD]7}|j||}|j|}|j||9CX_t	dd}||dzz
}||fD]V}|j|d}|j|}|jt
|t|j||Xy)N)riiirdeadbeeffeedfacei@Br)rrrrintrrr)	r.rnbitsnbasenposr!rr-rs	         r	test_longzAbstractPickleTests.test_longUs	4E9
4U
!!GUE!G34D!D5[4!%Au!5"jj0++As344
4	4&+
'!!	%A

1a A**Q-C
MM$s)S)Q$	%rcgd}||Dcgc]}|c}z}tD]>}|D]7}|j||}|j|}|j||9@ycc}w)N)ggg+phgZ*)g_D9g?g?gQ	@gm"wp@gWTDgꌠ9Y>)Fr)r.test_valuesr'rrprr-s       r
test_floatzAbstractPickleTests.test_floatlsrA!$=AaR$==	0E$
0E51jj(##E3/
0	0%>s
A!LC_ALLde_DEfr_FRcN|j|jdddddy)Ng333333?rrsF1.)rrr2s rtest_float_formatz%AbstractPickleTests.test_float_formatvs&	
C+Aa0&9rctD]E}t}|j||}|j|}|j	|t
Gyr$)rAAArrrREDUCE_Ar.rinstr]rDs     rtest_reducezAbstractPickleTests.test_reduce{sF	/E5DZZe,FZZ'FVX.		/rctD]C}tdd}|j||}|j|}|j	||Ey)Nrr)rr{rrrrs     rtest_getinitargsz$AbstractPickleTests.test_getinitargssJ	.E1a=DZZe,FZZ'Ff-		.rct}tD]K}|j||}|j|}|j	|j
|j
Myr$)rrrrrrr.r~rrrs     rtest_metaclassz"AbstractPickleTests.test_metaclasssMO	7E

1e$A

1
AQ[[!++6	7rc>tdtf}tjttj
tD][}|j||}|j|}|j|||jt|t|]y)Nmy_dynamic_class)rr?rNrrrsrrrrrrrs     rtest_dynamic_classz&AbstractPickleTests.test_dynamic_classsy !3fY?)+=+H+HI	,E

1e$A

1
AQ"MM$q'47+		,rcddl}ddl}|j}tD]}|j	||}|j|}|j
|||j|j}|j	||}|j|}|j
||t|ds|j|j}|j	||}|j|}|j
||y)Nrstatvfs)timer	localtimerrrrstatcurdirrr)r.rrrrrrs       rtest_structseqz"AbstractPickleTests.test_structseqsNN	*E

1e$A

1
A1%		"A

1e$A

1
A1%r9%BJJryy)JJq%(JJqM##Aq)	*rctD]7}|jd|}|j|}|jd|9yN.)rrrrr.rrrs    r
test_ellipsisz!AbstractPickleTests.test_ellipsiss<	"E

3&A

1
AMM#q!	"rctD]?}|jt|}|j|}|j	t|Ayr$)rrrrrrs    rtest_notimplementedz'AbstractPickleTests.test_notimplementeds<	-E

>51A

1
AMM.!,	-rcddtg}|D]T}tD]I}|jt||}|j	|}|jt||KVyr)rrrrrr)r.
singletons	singletonrrrs      rtest_singleton_typesz(AbstractPickleTests.test_singleton_typess_C0
#	2I"
2JJtI6JJqM

d9oq1
2	2rc
tjjD]b}t|tst|tr%tD]5}|j||}|j|j||7dyr$)builtinsrZvaluesrr
issubclassrrrrrr.rrrs    rtest_builtin_typesz&AbstractPickleTests.test_builtin_typessh""))+	4A!T":a+G&4E

1e,AMM$**Q-34	4rctjjD]}t|tst|ts%tD]}|j||}|j|}|dkr/t|tr|tur|j|tZ|dkr't|tr|j|t|j||yNr)rrZrrrrrrrrOSErrorBlockingIOErrorrImportError)r.rrrrs     rtest_builtin_exceptionsz+AbstractPickleTests.test_builtin_exceptionss""))+
	,A!T"z!]'C&,E

1e,A

1
AzjG&</AY

a1!
1k(B

a5

a+,
	,rctjjD][}t|tj
stD]5}|j||}|j|j||7]yr$)
rrZrrtypesBuiltinFunctionTyperrrrrs    rtest_builtin_functionsz*AbstractPickleTests.test_builtin_functionsse""))+	4A!U667&4E

1e,AMM$**Q-34	4rcZtD]}|jd|}|dk\r>tjt	|gz}|j|j
|X|jttj|dtddz}tjtjz}tjt	|gz|z}	|j||jdy#t$r%}|jdt|Yd}~yd}~wwxYw)Nrrrrz0expected bad protocol number to raise ValueErrorzunsupported pickle protocol)rrrPROTOrr
startswithrr"NONErQrfailr+rry)r.rrproto_headeroob
build_none	badpickleerrs        r
test_protozAbstractPickleTests.test_protos	IEjju-Gz%||eUGn< 2 2< @A  fllG!DaH
	Ima[[6;;.
LL5#</*<		JJJy!
IIHI	CMM7SBB	CsC<<	D*D%%D*cd}tD]d}|j||}|j|}|j|||j	ttj||dk\fy)NUJ^w,3|	r)rrrrrrrLONG1r.r'rrrs     r
test_long1zAbstractPickleTests.test_long1se)	LE

1e$A

1
A1%-fllA>
K		Lrcddz}tD]d}|j||}|j|}|j|||j	ttj||dk\fy)Nrrr)rrrrrrrLONG4rs     r
test_long4zAbstractPickleTests.test_long4sj)e4	LE

1e$A

1
A1%-fllA>
K		Lrcidtjdtjdtjdtjdtjdtjdtjdtjd	tjd
tjdtjdtjd
tjdtj
dtjdtjdtjtjtj
tjd}d}d}d}d}d}tD]x}|||||fD]l}|j||}	|j|	}
|j||
|t|dt|f}|jt||	nzy)N)rr)rr)rr)rr)rr)rr)rrrr)rrrr)rrrr)rr)rr)rr)rr)rr))rr)rrrrr%)rrrr)rrrrr)rTUPLEEMPTY_TUPLETUPLE1TUPLE2TUPLE3rrrrminr+rr)r.expected_opcoder~rrrOerr'rrrs            rtest_short_tuplesz%AbstractPickleTests.test_short_tupless66<<!6<<!6<<"6<<"6<<	"6#5#5
"6<<"6<<"6<<"6<<"6#5#5"6=="6=="6== "6<<!$"6#5#5%&"6=='($*==#)==#)<<-0
	?E1a]
?JJq%(JJqM##Aq)*3ua=#a&+@A 01 =>
?	?rc
dtjtjtjtjtjtjtjtjtjtjtjtjd}t
D]p}dD]i}|j
||}|j|}|j||u||||f|t|d|f}|jt||kry)N))rN)rN)rN)rN)rT)rT)rT)rT)rF)rF)rF)rF)NFTr)rr
INTNEWTRUENEWFALSErrrrr%r)r.r&rr'rrrs       rtest_singletonsz#AbstractPickleTests.test_singletons(s&,kk&,kk&,kk&,kk&,jj&,jj&,nn&,nn'-zz'-zz'-'-	?E&
?JJq%(JJqMQ1a(89*3ua=!+;< 01 =>
?	?rctgd}d|_d|_tD]7}|j	||}|j|}|j
||9yNrrhello)rrrrrrrrs     rtest_newobj_tuplez%AbstractPickleTests.test_newobj_tupleAsVI	&E

1e$A

1
A1%	&rctgd}d|_d|_tD]7}|j	||}|j|}|j
||9yr/)r5rrrrrrrs     rtest_newobj_listz$AbstractPickleTests.test_newobj_listJsV9	&E

1e$A

1
A1%	&rc
tD]}tD]}|j}||j}d|_|j||}|j
|}|||||t|f}|j|||j||||||j|j|j|yNr)r	myclasses__base__samplerrrrrrrZ)r.rrXBr'rrdetails        rtest_newobj_genericz'AbstractPickleTests.test_newobj_genericSs
	AE	
AJJahhKJJq%(JJqMAq!T!W5##Aq)  1qtV4  QZZ@	
A
	Arc
.tdd}ttfD]}|j|tD]}|D]}|j
}||j}d|_tj|}|j||}|j|}	|jt|	t||||||	t|	f}
|j||||	|
|j|j|	j|
yr5)r6MyIntrrrr7r8rweakrefproxyrrrrrZ)r.classesrrrXr9r'rrrr:s           rtest_newobj_proxiesz'AbstractPickleTests.test_newobj_proxies`sA,!	ANN1		AE

AJJahhKMM!$JJq%(JJqM  a$q'2Aq!T!W5  1qtV4  QZZ@

A	Arc0tD]}td}d|_|j||}|j	|}|jt
|t|jt|d|j|jdy)Nrr)	r
MyIntWithNew2rrrrrrrrs     rtest_newobj_overridden_newz.AbstractPickleTests.test_newobj_overridden_newssy	(Ea AAE

1e$A

1
AMM$q'=1SVQ'QUUB'	(rct}tjt}|j|d}	da|jtt
jf|j||ay#|awxYw)Nrr)SimpleNewObjrrrrrrcr)r.saverrs    rtest_newobj_not_classz)AbstractPickleTests.test_newobj_not_class~s_  .JJq!	 Ly&*@*@A4::qQL4Ls3A))A-ct|}	tjtd|t	gd}d|_d|_|j|d}|jtjd||jd||jt|||j|}|j|||j|d}|jtjd||jd||jt||d	t!||j|}|j|||j#y#|j#wxYw)
Nr5rrr0rrsMyListrT)rKrNrTr<r5rrrrr assertFalserrrrrreprrV)r.extcodeopcoder'r's1rs2s        rproduce_global_extz&AbstractPickleTests.produce_global_exts.7#	!!(Hg>y!AAEAEAq!BMM(//'2B7MM)R(-fb9:

2A1%Aq!BX__W5r:Y+-fb94bJ

2A1%
IIKAIIKsEE--E?c|jdtj|jdtjy)Nrr)rPrEXT1r2s rtest_global_ext1z$AbstractPickleTests.test_global_ext1s*
FKK8
FKK8rc|jdtj|jdtj|jdtjy)Nrriͫ)rPrEXT2r2s rtest_global_ext2z$AbstractPickleTests.test_global_ext2>
FKK8
FKK8
FKK8rc|jdtj|jdtj|jdtjy)Nriͫ)rPrEXT4r2s rtest_global_ext4z$AbstractPickleTests.test_global_ext4rWrcFd}tt|}tD]f}|j||}|j	|}|j||t
tj|}|j||dkDhd}tt|}tD]}}|j||}|j	|}|j||t
tj|}|dk(r|j|dj|j|dk\yN
r	r)rr7rrrrr"rAPPENDSrr)r.r!r'rrrnum_appendss       rtest_list_chunkingz&AbstractPickleTests.test_list_chunkingsqN	5E

1e$A

1
A1%&v~~q9K[%!)4	5
qN	2E

1e$A

1
A1%&v~~q9Kz  a0q 01	2rcd}tjt|}tD]|}|j	||}|j|t|j|}|j||ttj|}|j||dkD~d}tjt|}tD]}}|j	||}|j|}|j||ttj|}|dk(r|j|dj|j|dk\yr])rrr7rrr*rrrr"rSETITEMSrr)r.r!r'rrrnum_setitemss       rtest_dict_chunkingz&AbstractPickleTests.test_dict_chunkingsMM%(#	6E

1e$A!!![1

1
A1%';L\5195
	6
MM%(#	3E

1e$A

1
A1%';Lz  q1 12	3rcld}tt|}tD]{}|j||}|j	|}|j||t
tj|}|dkr|j|dj|j|d}d}tt|}tD]{}|j||}|j	|}|j||t
tj|}|dkr|j|dj|j|d}y)Nr^rrrr_r)r5r7rrrrr"rADDITEMSrassertGreaterEqual)r.r!r'rrrnum_additemss       rtest_set_chunkingz%AbstractPickleTests.test_set_chunkingsaM	2E

1e$A

1
A1%';Lqy  q1  q1	2
aM	9E

1e$A

1
A1%';Lqy  q1''a8	9rctjtd}d|_tD]}|j	|5|j||}|dkr|j
d|n|j
d||jttj|d|k|jttj||j|}|j||dddy#1swYxYw)Nrr
I64206Mr)rFrrrrrrrrrNEWOBJrJ	NEWOBJ_EXrrrs     rtest_simple_newobjz&AbstractPickleTests.test_simple_newobjs  v6	*EE*

*JJq%(19MM+q1MM,2  !1&--!C!"e-  !1&2B2BA!FGJJqM##Aq)

*

*	*

*

*sB6C>>D	cztjtd}d|_tD]}|j	|5|j||}|dkr|j
d|nB|dkr|j
d|n*|dkr|j
d	|n|j
d
||jttj|d|k|jttj||j|}|j||dddy#1swYxYwNrmrnrorrprrqrs	XFACEsFACE)
ComplexNewObjrrrrrrrrrrrrJrsrrrs     rtest_complex_newobjz'AbstractPickleTests.test_complex_newobj	s!!-8	*EE*
*JJq%(19MM+q1QYMM,2QYMM":A>MM/15  !1&--!C!"e-  !1&2B2BA!FGJJqM##Aq)
*
*	*
*
*C&D00D:	cztjtd}d|_tD]}|j	|5|j||}|dkr|j
d|nB|dkr|j
d|n*|dkr|j
d	|n|j
d
||jttj||jttj|d|k|j|}|j||dddy#1swYxYwrv)ComplexNewObjExrrrrrrrJrrrrrrsrrrs     rtest_complex_newobj_exz*AbstractPickleTests.test_complex_newobj_ex"	s##OV<	*EE*
*JJq%(19MM+q1QYMM,2QYMM":A>MM/15  !1&--!CD  !1&2B2BA!F!"e-JJqM##Aq)
*
*	*
*
*ryctgd}d|_d|_|j|d}|j	|}|j||y)Nrrr0r)SlotListrrrrr)r.r'rrs    rtest_newobj_list_slotsz*AbstractPickleTests.test_newobj_list_slots6	sGYJJq!JJqMAq!rctD]}t}|j|jd|j	||}|j|jd|j|}|j|jdyrM)rREX_oner_reduce_calledrrrs     r'test_reduce_overrides_default_reduce_exz;AbstractPickleTests.test_reduce_overrides_default_reduce_ex>	sw	2E	AQ--q1

1e$AQ--q1

1
AQ--q1
	2rctD]}t}|j|jd|j	||}|j|j||j|}|j|jdyr$)rREX_twor_protorrrs     rtest_reduce_ex_calledz)AbstractPickleTests.test_reduce_ex_calledG	sq	-E	AQXXt,

1e$AQXXu-

1
AQXXt,
	-rctD]}t}|j|jd|j	||}|j|j||j|}|j|jdyr$)r	REX_threerrrrrs     rtest_reduce_ex_overrides_reducez3AbstractPickleTests.test_reduce_ex_overrides_reduceP	sq	-EAQXXt,

1e$AQXXu-

1
AQXXt,
	-rctD]}t}|j|jd|j	||}|j|j||j|}|j|j|yr$)rREX_fourrrrrrs     rtest_reduce_ex_calls_basez-AbstractPickleTests.test_reduce_ex_calls_baseY	sq	.E
AQXXt,

1e$AQXXu-

1
AQXXu-
	.rctD]}t}|j|jd|j	||}|j|jd|j|}|j|jdyrM)rREX_fiverrrrrs     rtest_reduce_calls_basez*AbstractPickleTests.test_reduce_calls_baseb	sw	2E
AQ--q1

1e$AQ--q1

1
AQ--q1
	2rc6t}tdD]A}tj5|j	t
|j||dddCtdtjdzD]}|j
||}y#1swYxYw)Nrr)	
BadGetattrr7rinfinite_recursionrRuntimeErrorrrr))r.r'rrs    rtest_bad_getattrz$AbstractPickleTests.test_bad_getattrk	s
L1X	FE++-
F!!,

AuE
F
F	F1f559:	%E

1e$A	%
F
Fs#BB	cGddt}Gddt}tD]2}	|j||	|j||4y#tj$rY0wxYw#tj$rYdwxYw)NceZdZdZy)7AbstractPickleTests.test_reduce_bad_iterator.<locals>.CctddgdfSrg)rr2s rrszBAbstractPickleTests.test_reduce_bad_iterator.<locals>.C.__reduce__y	sRr4//rNr<r=r>rsr%rrrXrx	
0rrXceZdZdZy)7AbstractPickleTests.test_reduce_bad_iterator.<locals>.DctdddgfSrg)rr2s rrszBAbstractPickleTests.test_reduce_bad_iterator.<locals>.D.__reduce__}	sRtR//rNrr%rrr_r|	rrr_)r?rrr
PicklingError)r.rXr_rs    rtest_reduce_bad_iteratorz,AbstractPickleTests.test_reduce_bad_iteratoru	s	0	0	0	0	E


13&


13&
	''

''

s#AA4A10A14B
	B
cZdtdD}td|D}t|t|t|g}tD]R}|j|5|j	||}|j|}|j
||dddTy#1swY_xYw)Nc38K|]}dt|zyw)aaaNrx).0rs  r	<genexpr>z>AbstractPickleTests.test_many_puts_and_gets.<locals>.<genexpr>	s31A3srmc3(K|]
}|gdfyw))rrrNr%)rks  rrz>AbstractPickleTests.test_many_puts_and_gets.<locals>.<genexpr>	s7Q1i.7sro)r7rrrrrr)r.r9
large_dictrrr]rDs       rtest_many_puts_and_getsz+AbstractPickleTests.test_many_puts_and_gets	s4c
37$77
Jj!14
3CD	1EE*
1C/F+##C0
1
1	1
1
1s 6B!!B*	c0tD]}t}d|_d|_|j	||}|j|}t
|j}t
|j}t||D]\}}|j||y)Nrr0)
rrXrrrrsortedrZzipr)	r.rr'rrx_keysy_keysx_keyy_keys	         rtest_attribute_name_interningz1AbstractPickleTests.test_attribute_name_interning	s		,EAAEAE

1e$A

1
AAJJ'FAJJ'F #FF 3
,u

eU+
,		,rc|jtdd}|j|t|jt	dgd}|j|t
y)Nrrr)rr7rr6r5	DATA_SET2r\s  rtest_pickle_to_2xz%AbstractPickleTests.test_pickle_to_2x	sN
E!Ha(-CHa(+rctD]l}dtddztf}|j||}|j	|}|jt|t||j||ny)Nrsxyix)rr%r+rrr)r.rrr]rDs     rtest_large_picklesz&AbstractPickleTests.test_large_pickles	sl	+EsEY/5DZZe,FZZ'FS[#d)4VT*	+rc	tD]}|j|5tdDcgc]}|jd|z|}}t	tt|}|jt|||dk\r0|D]+}|jttj|-dddycc}w#1swYxYw)NroFr)
rrr7rrmapr+rrrJrrLONG)r.rr!picklessizesrs      rtest_int_pickling_efficiencyz0AbstractPickleTests.test_int_pickling_efficiency	s	KEE*
K<A"IFq4::adE2FFSg./  6A:$K(()9&++q)IJK

K
K	KF
K
KsCB<A+C<CC
	c|j||}|jt|||j|}|j	||yr$)rrrrr)r.rrMrrrs      r_check_pickling_with_opcodez/AbstractPickleTests._check_pickling_with_opcode	sD**S%((9:JJw'	i(rctgd}tD]J}|dk(r"|j|tj|*|j|tj
|Ly)Nrr)r=rrrAPPENDr`r.rrs   rtest_appends_on_non_listsz-AbstractPickleTests.test_appends_on_non_lists	sPi 	MEz00fmmUK00fnneL		Mrctdddd}tD]J}|dk(r"|j|tj|*|j|tj
|Ly)Nrrr)r[rrrSETITEMrdrs   rtest_setitems_on_non_dictsz.AbstractPickleTests.test_setitems_on_non_dicts	sWB2"-.	NEz00fnneL00foouM		NrrrYcdx}}hd}tj|D]\}}}||j||||k(rd}|P|j|jd|j|vr|jt||jnl|jdk(s&|j|vr<t||jkDr$|5|j||z
|jd}n||jdk7r|}|jdk(s|j||j|dz|z}t|}||j||y| |j||z
|jyy)a
        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
BINUNICODErBINUNICODE8FRAMEr	)rrassertLessEqualassertNotEqualrr+FRAME_SIZE_TARGET
assertLessFRAME_SIZE_MINrir)r.r	frame_endframeless_startframeless_opcodesrraposs        rcheck_frame_opcodesz'AbstractPickleTests.check_frame_opcodes	sz'+*	O:'..w7	*LBS$$$S)4)# $I$##BGGW577//((S43I3IJGGw&WW 11X 6 66&2o(=(,(;(;=*.$,G1C&)Oww'!''T-@-@A!GcM	9	*<'l Y,

(OOC/143F3FG)rcpucttd}tdtjdzD]}|j	|5|j||}|j
|}|j||t|ttj|z}|j||jdz|j||jdz|j|dddy#1swYxYw)Nirrror)rr7rr)rrrrr+r"r
assertGreaterrrr)r.rrrrbytes_per_frames      rtest_framing_many_objectsz-AbstractPickleTests.test_framing_many_objects
s5< 1f559:	2EE*

2**S%0 JJw/	  i0#&w<#/g#F$G""?#'#9#9A#=?$$_%)%;%;a%?A((1

2

2	2

2

2s
B+C==D	c\d}tdDcgc]}|g}}d|zg|d|zd|z}tdtjdzD]B}dD]9}|j||	5|s|j	||}net|d
s
	dddCt
j}|j||}	||	_	|	j||j}|j|}
|j|Dcgc]
}t|c}|
Dcgc]
}t|c}|j||
ttj |}|j|d|j#|ddd<Eycc}wcc}wcc}w#1swYZxYw)Nir^xyzrr)FT)rfastpicklerr)r7rr)rrrr6rBrrdumprDrrr+r"rr)
r.Nrsmall_itemsrrrrbufrrr'n_framess
             rtest_framing_large_objectsz.AbstractPickleTests.test_framing_large_objects#
s$)"I.qs..ax9+9tax9q91f559:	6E%
6\\D\96#'**S%"8 'tY7$66!jjl"&,,sU,"C'+S)"%,,. $

7 3I$$c%:c!f%:6?%@c!f%@B$$S)4+FLL'BH$$Xq1,,W5166
6	6/(&;%@#66s7
F(#F!A/F!FF!F-AF!
F!!F+c	tjdkrydd}|j}d}ttfD]}t|Dcic]}|||g|z}}tdtjdzD]}|j
||}||}	|jttj|	d|j||j|	||d}
|jttj|
ttj||j||j|
ycc}w)Nrc
g}d}tj|D]'\}}}|jdk(s|j|)t	}d}t|D]\}	}|r	||	r||||z
}||z}|||dz
}|S)z+Remove frame opcodes from the given pickle.rrrN)rrrrrt	enumerate)
r
keep_frameframe_startsframe_opcode_sizerM_r	newpicklelast_frame_endrs
          r
remove_framesz?AbstractPickleTests.test_optional_frames.<locals>.remove_framesG
sL !"-"4"4W"=
-3;;') '',
-"IN#L1
93*Q-W^C88	!$'8!8	
9

11Irrrc|dzSrr%)rs rr;z:AbstractPickleTests.test_optional_frames.<locals>.<lambda>h
s
a!err$)rr)rrrtr7rrr"rrr)r.r
frame_size
num_frames
bytes_typerrrrframeless_picklesome_frames_pickles           rtest_optional_framesz(AbstractPickleTests.test_optional_framesC
s1""Q&	&++

!),
	FJ<A*<MNq1j!o
22NCNq&"9"9A"=>

F**S%0#0#9   fll<L!MqQ  djj1A&BC%27O%L"V\\;M N ,V\\7 CE  djj1C&DE

F
	FNsEc
bGdd}tdtjdzD]k}ttdDcgc]-}t	|jd|dzdt	|if/}}|j
d	|jd
zdzz|}|j||j||j}|j|}|j|||jt|jd~t!j"|j|j|t|dz
|jzdz}|j%t|j||j't|jd|zdz|jD	cgc]
}	t|	}
}	|
Dcgc]}||jk\r|}}|
Dcgc]}d
|cxkr|jkrnn|}
}|
Dcgc]
}|d
ks	|}}|D]"}|j)|d|jz|
$|j't|t|t|
zdz|
nycc}wcc}	wcc}wcc}wcc}w)Nc"eZdZdZdZdZdZy)YAbstractPickleTests.test_framed_write_sizes_with_delayed_writer.<locals>.ChunkAccumulatorz2Accumulate pickler output in a list of raw chunks.cg|_yr$)chunksr2s rrHzbAbstractPickleTests.test_framed_write_sizes_with_delayed_writer.<locals>.ChunkAccumulator.__init__q
s	 rc:|jj|yr$)rr)r.chunks  rrGz_AbstractPickleTests.test_framed_write_sizes_with_delayed_writer.<locals>.ChunkAccumulator.writes
s""5)rc8dj|jS)Nr)rrr2s rconcatenate_chunkszlAbstractPickleTests.test_framed_write_sizes_with_delayed_writer.<locals>.ChunkAccumulator.concatenate_chunksu
sxx,,rN)r<r=r>rIrHrGrr%rrChunkAccumulatorro
sD
!
*
-rrrrg@rrr0123456789abcdefrrrr)r7rr)rryr rrrrrrrrr+rr
gc_collectrirr)r.rrrobjectswriterr
reconstructedrrchunk_sizesrlarge_sizesmedium_sizessmall_sizes
chunk_sizes                r+test_framed_write_sizes_with_delayed_writerz?AbstractPickleTests.test_framed_write_sizes_with_delayed_writerm
s	-	-1f559:5	.E %c#h1A

g.Bc!f
F1G1
NN- 22b81<>
?&'FLL',,W5
//1G JJw/M]G4s6==115 V668'BGq(T-C-CCaGH##C

$6A

  V]]!3Q\A5EF+1==9a3q69K9&1;4#9#99;K;'2>!!<d&<&<<>L>&1<Q!V1<K<*
-

A0F0F,F +-
-
  [!1!$[!1C4E!E!I!,
.g5	.1H:;><s$2JJ#J"!J'(
J,3J,c	GddattjdzD]}tjtjj
tjj
jfD]Q}|j||5|j|j||}|j||dddSy#1swY`xYw)Nc eZdZGddZy)Nestedc eZdZGddZy)Nested.Ac eZdZGddZy)
Nested.A.BceZdZy)Nested.A.B.CNrkr%rrrXr
srrXN)r<r=r>rXr%rrr9r
srr9N)r<r=r>r9r%rrAr
srrN)r<r=r>rr%rrrr
s

rrr)rr)rr7rr)rr9rXrrrr)r.rrrs    rtest_nested_namesz%AbstractPickleTests.test_nested_names
s		
622Q67	2E&((**fhhjjll;
2\\3\72 $

4::c5+A BIMM#y122
2	222s
4CCcGddatjtjt_dt_t
tjdzD]X}|j|5|j|jt|}|j|tdddZt`y#1swYkxYw)NceZdZy)	RecursiveNrkr%rrr r 
rr zRecursive.mod.Recursiverro)
r rmodulesr=modr>r7rr)rrrr)r.rrs   rtest_recursive_nested_namesz/AbstractPickleTests.test_recursive_nested_names
s		I$8$89	
!:	622Q67	4EE*
4 JJtzz)U'CD	

i3
4
4	4
M
4
4s1<B>>C	c	Gddatjtjtjtjj
tjjtj	jf}tjtftjjtjff}ttjdzD]}|D][}|j||5|j|j||}|j||ddd]|D]g\}}|}|j||5|j|j||}|j||||ddditjdtjdf}ttjdzD]G}|D]@}	|j||	5|j!t"|j|	|dddBIy#1swYcxYw#1swYxYw#1swYixYw)NcFeZdZedZedZdZGddZy)
PyMethodsTestcy)Ncheeser%r%rrr)zPyMethodsTest.cheese
srcy)Nwiner%rs rr+zPyMethodsTest.wine
srcy)Nbiscuitsr%r2s rr.zPyMethodsTest.biscuits
s!rc6eZdZdZedZedZdZy)PyMethodsTest.NestedzNested classcy)Nketchupr%r%rrr2zPyMethodsTest.Nested.ketchup
s$rcy)Nmapler%r,s rr4zPyMethodsTest.Nested.maple
s#rcy)Npier%r2s rr6zPyMethodsTest.Nested.pie
s rN)	r<r=r>rIstaticmethodr2rr4r6r%rrrr0
s.%%##!rrN)	r<r=r>r7r)rr+r.rr%rrr'r'
s5

 
 



"
!
!rr'rrmethodr)r+rdescr)r'r)r+r.rr2r4r6r7rr)rrrrrZrr)
r.
py_methodspy_unbound_methodsrr9rrrdescriptorsr;s
          rtest_py_methodsz#AbstractPickleTests.test_py_methods
s;	!	!2
  O$$  ((  &&  "&&



#
#]3

!
!
%
%}';';<
622Q67		BE$
<\\f\=< $

4::fe+D EI$$VXy{;<<
< 2
Be\\f\=B $

4::fe+D EI$$VC[)C.ABB
B		B
""8,""6*
622Q67	KE$
K\\U\;K%%iUEJKK
K	K<<
BBKKs%>I.AI#I!II!I*cGddtadjdftjdfgdjdft
jgdffdd	hjd
ftjdd	hd	fftjdftjdftgd
jd
ftjtgd
d	fftjdjdftjjtjddfff}ttj dzD]a}|D]Z\}}|j#||5|j%|j'||}|j)||||ddd\ctj*dtj*df}ttj dzD]G}|D]@}|j#||5|j-t.|j&||dddBIy#1swYxYw#1swY[xYw)Nc"eZdZGddeZy)SubclassceZdZy)Subclass.NestedNrkr%rrrrDsrrN)r<r=r>ryrr%rrrBrBs

rrBabcd)r)rErrr%rr)r))r~r)rr)sabcr)rrrsweet)r'r'r8	maketransrr:)r@rBindexry__len__r__contains__r5rrrtrGcountrr7rr)rrrrrZrr)r.	c_methodsrr9r/rr>r;s        rtest_c_methodsz"AbstractPickleTests.test_c_methodss&	u	\\6"
YY
&


#
\\I<(V
 
 $'


A{+
]]01

 
 "23
g

$
$d+
^^hw/34
__W
%
+
+V4
__
"
"X__W%=s$CD+
	.622Q67	FE )
F\\f\=F $

4::fe+D EI$$VT]It4DEFF
F	F
{+MM*%
622Q67	KE$
K\\U\;K%%iUEJKK
K	KFFKKs:H,<#H8,H58Ic
tddddfttdddftjddft
jd	d	ftd
dftjdd
ftjddftjddfg}|D]\}}}tdD]}|jt||5|j||}|jd|d|j!||j#t|j%|t|dddy#1swYxYw)Nrr__builtin__xrange123	itertoolsimaprr
exceptionsr<rIterableUserDictUserListrdefaultdictr)rrrr)r7rrrrrrr<rrrVrWrrrrr rr)r.testsvalr#rrrs       rtest_compat_picklez&AbstractPickleTests.test_compat_pickle.s:
1a[-2
e_k62


}h7
[[)Y/
[,4

!
!
#Z1CD

!
!
#Z<

$
$
&
}E	
$	HNCdq
H\\tCy\>H"jje4GMMT#:"B"B"DgNMM$tzz'':";T#YGHH
H	HHHs
A,EE
c8d}tdtjdzD]U}|jttj
f5t
j|j||dddW|`	tdtjdzD]U}|jttj
f5t
j|j||dddW|j|_tdtjdzD]U}|jttj
f5t
j|j||dddWy#1swY`xYw#1swYxYw#1swY{xYw)Ncyr$r%r%rrr
z6AbstractPickleTests.test_local_lookup_error.<locals>.fCrrr)r7rr)rAttributeErrorrrr!rr=r>r<r.r
rs   rtest_local_lookup_errorz+AbstractPickleTests.test_local_lookup_error@s^	1f559:	6E""NF4H4H#IJ
6

1e 45
6
6	6

L1f559:	6E""NF4H4H#IJ
6

1e 45
6
6	6^^
1f559:	6E""NF4H4H#IJ
6

1e 45
6
6	6
6
6
6
6

6
6s$	&E7&F&F7F	F
	F	c#.Kd}t|t|tot|}tj|d}dtjfD]7}t|dd|t|ddd	|
t|ddd|
9yyw)Nabcdefghlittle)	byteorderrr9)r)rrr)rrr)rrrrr)rrrrr
from_bytesrr)r.
bytestringrrprs     rbuffer_like_objectsz'AbstractPickleTests.buffer_like_objectsYs 
J''
++"$ENN:NBE[445

4&uS-244'uS/5UDD'uS-3V-244

4#sBBc&|jD]}}tdtjdzD]Y}|j	||}|j
r|dk\r|j
d||jttj|d|dk\r|jttj||jrdnd|jttj||jrdndd}|j	|||}|j|||j|}|j|||jt!|t!||j||\y)NrrrrbcyNTr%rs rbuffer_callbackzAAbstractPickleTests.test_in_band_buffers.<locals>.buffer_callback}s#rrl)rgr7rr)rrrrr"NEXT_BUFFERSHORT_BINBYTESrrrrrr)r.rrrrldata2rs       rtest_in_band_buffersz(AbstractPickleTests.test_in_band_buffersmsP++-	+Cq&"9"9A"=>
+zz#u-##
MM+t4  f.@.@$!GKA:$$\&2G2G%N*-,,QA?$$\&2C2CT%J*-,,QA?$ JJsE7F'HE$$UD1jj&  c*

d3ic3  c*/
+	+rc|jD]}tddD]>}|jt5|j	||gj
ddd@tdtjdzD]#}gfd}|j	|||}|jd||jttj|d|jttj|d|jttj|d|jttj||jrdnd|j r|jt#dd|jtj$5|j'|ddd|j'|}|j(r|j+||n6|j+t-|t-||j|||j'|t/}|j(r|j+|||j+t-|t-||j||&y#1swYxYw#1swYxYw)NrrrmrcBj|jSr$)rr)rbufferss rr;z6AbstractPickleTests.test_oob_buffers.<locals>.<lambda>sW^^BFFH-Errbrt)rgr7rr+rrrr)rrr"rorrnREADONLY_BUFFERrrrrcrrrriter)r.rrrlrrrts      @rtest_oob_buffersz$AbstractPickleTests.test_oob_bufferssI++-&	/Cq!
:&&z2:JJsE/1yy:::
:
q&"9"9A"=> 
/"Ezz#u2A"C  d3  f.C.CT!JAN  f.?.?!FJ  f.@.@$!GK  f.D.Dd!K&)ll;##$$U71:%6D&&v'='=>%JJt$%jjwj7,,MM#s+MM$s)T#Y7$$S#.jjtG}j=,,MM#s+MM$s)T#Y7$$S#.A 
/
&	/::$%%sJ+0J8+J58KcTtd}tdtjdzD]}}g}|j}|j|||}t
t|}|j||}|jt|t||j||yNfoobarrrrmru)rr7rr)rrrrtrrrr)r.rrrtrlrrs       r%test_oob_buffers_writable_to_readonlyz9AbstractPickleTests.test_oob_buffers_writable_to_readonlysI&1f559:	'EG%nnO::c5/:JD)W-G**T7*3CMM$s)T#Y/S#&	'rctjd}tddD]<}|jtj5|j||ddd>y#1swYIxYw)Nr{rr)rrr7rPickleErrorr)r.rrs   rtest_picklebuffer_errorz+AbstractPickleTests.test_picklebuffer_errorsc

 
 
+1a[	&E""6#5#56
&

2u%
&
&	&
&
&sA""A+	cd}tjd}|jt5|j	|d|dddy#1swYyxYw)Ncddzyr(r%rus rrlzGAbstractPickleTests.test_buffer_callback_error.<locals>.buffer_callbacks	
aCrr{rrm)rrrZeroDivisionErrorr)r.rlrs   rtest_buffer_callback_errorz.AbstractPickleTests.test_buffer_callback_errorsM	

 
 
+


0
1	?JJr1oJ>	?	?	?sAActjd}tdtjdzD]}|j	||gj
}|j
t5|j|tddd|j
tj5|j|gdddy#1swYGxYw#1swYxYwrz)rrr7r)rrrrrr?rc)r.rrrs    rtest_buffers_errorz&AbstractPickleTests.test_buffers_errors

 
 
+1f559:	-E::b%:CD""9-
3

4
2
3""6#9#9:
-

4
,
-
-
	-
3
3
-
-s)C,CC	C 	ctdtjdzD])}|jd|d}|j	|d}+y)Nrrrmru)r7rr)rr)r.rdata_pickledrs    r+test_inband_accept_default_buffers_argumentz?AbstractPickleTests.test_inband_accept_default_buffers_argumentsI1f559:	:E::a:EL::lD:9D	:rNzTest needs Numpycfdfdfd}tjd}||||dddtjdjd}||||j||dddy)Nctjj||j|jj
|jj
yr$)nptestingassert_equalrctypesrr'rr.s  r
check_no_copyz=AbstractPickleTests.test_buffers_numpy.<locals>.check_no_copys7JJ##Aq)QXX]]AHHMM:rctjj||j|jj
|jj
yr$)rrrrrrrs  r
check_copyz:AbstractPickleTests.test_buffers_numpy.<locals>.check_copys7JJ##Aq)

qxx}}=rcttdtjdzD].}j||}j	|}||0tdtjdzD]3}d}j|||}j	|}||5tdtjdzD]v}g}|j
}j|||}j	||}|jjs|jjr
||n||xy)Nrrrcyrjr%)rs rr;zMAbstractPickleTests.test_buffers_numpy.<locals>.check_array.<locals>.<lambda>rrmru)	r7rr)rrrrrr)	arrrrrrlrtrrr.s	      rcheck_arrayz;AbstractPickleTests.test_buffers_numpy.<locals>.check_arrays$q&"9"9A"=>
%zz#u-jj&3$
%q&"9"9A"=>
%"0zz#uozNjj&3$	
%q&"9"9A"=>
)")..zz#uozNjjwj799))SYY-C-C!#s+sC(
)rrrr)rarangereshapeT)r.rrrrs`  @@rtest_buffers_numpyz&AbstractPickleTests.test_buffers_numpysu	;	>	).iilCC!Hiim##F+CCEEC!Hrc		ddlm	G	fddatD]y}t	dD]i}dt	dDcic]}ttc}D]}||_|_d	|j|}|j|k{ycc}w#t$r'}d}|j|t|Yd}~d}~wwxYw)	Nr)getrandbitsc*eZdZfdZdZfdZy)BadcSr$r%)r.r\ENABLEDs  rr]z
Bad.__eq__srcyr5r%r2s r__hash__zBad.__hash__srcJddk(rjtdfS)Nrrr%)clearr)r.
collectionrs rrszBad.__reduce__s%q>Q&$$&Ry rN)r<r=r>r]rrs)rrrsrrrs


!rrrFTchanged size during iteration)randomrrrr7r3rrrrrry)
r.rrr3rr'rrrrs
       @@@rtest_evil_class_mutating_dictz1AbstractPickleTests.test_evil_class_mutating_dicts&	!	!
	4E2Y
449"I>qceSUl>
%0C!CG%/CN04::j%8DJJt$
4
	4?$4>HMM(CF334sB3#B  	C)CCctdsjtdGddafd}tD]|tg|ttg|th|tth|tdi|tdtdi|ttdy)	Nrz has no associated pickler typeceZdZy)ClearerNrkr%rrrr2r!rrcGfddj}|tj}	|jy#t$r'}d}j|t
|Yd}~yd}~wwxYw)NceZdZfdZy)]AbstractPickleTests.test_evil_pickler_mutating_collection.<locals>.check.<locals>.EvilPicklercFt|trjyr$)rrr)r.rrs  r
persistent_idzkAbstractPickleTests.test_evil_pickler_mutating_collection.<locals>.check.<locals>.EvilPickler.persistent_id7s!#w/"((*rN)r<r=r>r)rsrEvilPicklerr6s rrr)rr6rBrrrry)rrrr'rrr.s`    rcheckzHAbstractPickleTests.test_evil_pickler_mutating_collection.<locals>.check5sb
 dll
 
""**,6G
0Z(
0:

hA//
0sA	A8A33A8rrr)rskipTestrrr)r.rrs` @r%test_evil_pickler_mutating_collectionz9AbstractPickleTests.test_evil_pickler_mutating_collection,stY'--4:,.M NOO			0	0E79+79gi()79+79gi()79a.!79aA./giGI./	0r)r<r=r>	optimizedrr
rrrrr&r(r/r1r6r>rArCrFrJrPrRrUr\r_rarcrfrhrjrlrorqrsrurxr|rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr(r-r1r3r;rArDrHrPrSrVr[rbrfrkrtrxr|rrrrrrr	rrrrrrrrrrrrrrskip_if_pgo_taskrequires_resourcerrrrrr$r?rMrZr`rgrqrxr|rrrrunittestskipIfrrrrr%rrrrslI%//I
+99N&(/	,08Q
#(9E:Bq&42CO08Q
#(9G:Bq&42CQ4<6,=K>FST986GU/,	%
+.278@6<9:B8>&),	+'
6L&&%.0Xw0:1:/.7,*&"-24,4J&LL%?N?2&&AA&	(
  899
9
2,3.92* *(*("2--.2%%.1,,+
K)MNN!-H^
Wu%
2&
26@(FT
?.?.B2
8Kt*KXH$624(+>(/T'&?	-:
X__R4Z!34*5*X4<0rrceZdZeedddZeedddZeedddZeeddd	Z	eeddd
Z
y)BigmemPickleTestsg@F)sizememusedry_runc dd|zz}	tD]Z}|dkr	|j|5|jttf5|j||dddddd\	d}y#1swYxYw#1swYvxYw#d}wxYw)Nrrrror)rrrr+rdr)r.rrrs    rtest_huge_long_32bz$BigmemPickleTests.test_huge_long_32bPsQX	"
919\\\.9**J
+FG9

4%
8999
9D9999Ds:!B	A=A1A=#
B	1A:6A==B	B		B
g@c
d|dzz}	tD]}|dkr	|j|5	|j||}tjtjdt|z}|j|}|j|||t|z
|d}	ddd	d}y#d}wxYw#1swYxYw#d}wxYw)NabcdrrrorrM)
rrrrrrOrPr+rHrr.rrrrheader
data_starts       rtest_huge_bytes_32bz%BigmemPickleTests.test_huge_bytes_32bas$!)$	"

'19\\\.
'	'"&**TE*"B"(//"(++dCI">#?%,]]4%8
(("#Js6{$::FH#'
'
'

'D#'
'
'Ds:!CB:A5B3"B:%
C3B77B::C	?CC
c
@d|dzz}	tD]}|dkr	|j|5|dk(rA|jttf5|j||ddd	dddb	|j||}tjtjdt|z}|j|}|j|||t|z
|d}	ddd	d}y#1swYxYw#d}wxYw#1swYxYw#d}wxYw)Nsacbdrrror<Q)
rrrr+rdrrrrOrPr+rHrrs       rtest_huge_bytes_64bz%BigmemPickleTests.test_huge_bytes_64bvs.$!)$	"
'19\\\.'z"..
M/JK= JJteJ<= 
''	'"&**TE*"B"("2"2"(++dCI">#?%,]]4%8
(("#Js6{$::FH#'!''
'*D==#'!''$DsY!D!DC9 	D)	D3A5D(D+
D9D>DD		DD	DDrc
*d|dzz}	tD]}|dk(r	|j|5	|j||}tjtjdt|z}|jd}|j|||t|z
||j|jdtdz|jdz
t|d}	ddd	d}y#d}wxYw#1swYxYw#d}wxYw)NrErrrorrMr)rrrrrrOrPr+rHrrindexrs       rtest_huge_str_32bz#BigmemPickleTests.test_huge_str_32bs#	"
'A:\\\.''"&**TE*"B"("3"3"(++dCI">#?%,]]7%;
(("#Js6{$::FH(('..*ACL*P*1--*@+ACFt9N#'''
'"D#'''Ds:!DDB=C;*D-
D;C??DD	DDc
d|dzz}	tD]+}|dk(r
|j|5|dkrA|jttf5|j||ddd	dddc	|j||}tjtjdt|z}|jd}|j|||t|z
||j|jdtdz|jdz
t|d}	ddd.	d}y#1swYxYw#d}wxYw#1swYPxYw#d}wxYw)NrErrrorrr)rrrr+rdrrrrOrPr+rHrrrs       rtest_huge_str_64bz#BigmemPickleTests.test_huge_str_64bsj#	"
'A:\\\.'qy!..
M/JK= JJteJ<= 	''
'"&**TE*"B"("4"4"(++dCI">#?%,]]7%;
(("#Js6{$::FH(('..*ACL*P*1--*@+ACFt9N#'!''
'*D!==#'!''$DsY"E#!E
E!	E*	E#4B=E1E4E#EEEEE 	E##E'N)r<r=r>rr
rrrrrrr%rrrrLsSe4
5
 Se45(Se45:SE234SE23rrceZdZdZdZdZy)rz4No __reduce_ex__ here, but inheriting it from objectrc d|_tdfS)Nrr%)rrr2s rrszREX_one.__reduce__s{rNr<r=r>rIrrsr%rrrrs>NrrceZdZdZdZdZy)rz1No __reduce__ here, but inheriting it from objectNc ||_tdfSrgrrr.rs  rrzREX_two.__reduce_ex__{rr<r=r>rIrrr%rrrrs;
FrrceZdZdZdZdZy)rNc ||_tdfSrgrrs  rrzREX_three.__reduce_ex__rrctd)Nz#This __reduce__ shouldn't be called)rr2s rrszREX_three.__reduce__s>??r)r<r=r>rrrsr%rrrrs
F@rrceZdZdZdZdZy)rz(Calling base class method should succeedNc<||_tj||Sr$)rr?rrs  rrzREX_four.__reduce_ex__s##D%00rrr%rrrrs2
F1rrceZdZdZdZdZy)rz-This one used to fail with infinite recursionrc:d|_tj|SrL)rr?rsr2s rrszREX_five.__reduce__s  &&rNrr%rrrrs7N'rrc*eZdZdZddZdZdZdZy)r=z]This class is used to check the 4th argument (list iterator) of
    the reduce protocol.
    Nc&|||_yg|_yr$r:)r.rs  rrHzREX_six.__init__#/U
R
rcdt|t|uxr|j|jk(Sr$)rrr[s  rr]zREX_six.__eq__'DzT%[(FTZZ5;;-FFrc:|jj|yr$)rr)r.items  rrzREX_six.appends

$rcHt|ddt|jdfSrg)rrwrr2s rrszREX_six.__reduce__s Dz2tT$**%5t;;rr$)r<r=r>rIrHr]rrsr%rrr=r=s8G <rr=c*eZdZdZddZdZdZdZy)r[z]This class is used to check the 5th argument (dict iterator) of
    the reduce protocol.
    Nc&|||_yi|_yr$rX)r.rYs  rrHzREX_seven.__init__
rrcdt|t|uxr|j|jk(Sr$)rrYr[s  rr]zREX_seven.__eq__
rrc"||j|<yr$rX)r.r0rps   r__setitem__zREX_seven.__setitem__
s

3rcdt|dddt|jjfSrg)rrwrYrr2s rrszREX_seven.__reduce__
s)Dz2tT4

0@0@0B+CCCrr$)r<r=r>rIrHr]rrsr%rrr[r[s8G Drr[c*eZdZdZddZdZdZdZy)rzUThis class is used to check the 3th argument (state) of
    the reduce protocol.
    Nc||_yr$rr.rs  rrHzREX_state.__init__
rqrcdt|t|uxr|j|jk(Sr$rrr[s  rr]zREX_state.__eq__
rrc||_yr$rrs  r__setstate__zREX_state.__setstate__
rqrc2t|d|jfSrgrr2s rrszREX_state.__reduce__
sDz2tzz))rr$)r<r=r>rIrHr]rrsr%rrrr
sG*rrceZdZdZy)r=rNr<r=r>r8r%rrr=r=
s
Frr=ceZdZdZy)MyFloatg?Nrr%rrrr
s
FrrceZdZdZy)	MyComplexy?Nrr%rrrr!
s
FrrceZdZdZy)MyStrr0Nrr%rrrr$
s
FrrceZdZdZy)	MyUnicodeu	hello ሴNrr%rrrr'
s
FrrceZdZdZy)rrNrr%rrrr*
s
FrrceZdZgdZy)r5rNrr%rrr5r5-
s
Frr5ceZdZdddZy)rTrrr}Nrr%rrrTrT0
s1
FrrTceZdZddhZy)rr~rNrr%rrrr3
s3ZFrrc eZdZeddhZy)rr~rN)r<r=r>rr8r%rrrr6
s
Sz
"FrrceZdZdZy)MyIntWithNewctr$)AssertionError)rrps  rrzMyIntWithNew.__new__?
srN)r<r=r>rr%rrrr>
srrc$eZdZejZy)rCN)r<r=r>rrr%rrrCrCB
skkGrrCceZdZdgZy)r~rN)r<r=r>rr%rrr~r~F
s	Irr~ceZdZdZdZy)rFctd)Nz3SimpleNewObj.__init__() didn't expect to get called)rrs   rrHzSimpleNewObj.__init__J
sMNNrcft|t|k(xr|j|jk(Sr$)rrZr[s  rr]zSimpleNewObj.__eq__M
s'4yCJ&J4==ENN+JJrN)r<r=r>rHr]r%rrrFrFI
sOKrrFceZdZdZy)rwcd|zdfS)N%Xrr%r2s r__getnewargs__zComplexNewObj.__getnewargs__Q
stR  rN)r<r=r>rr%rrrwrwP
s!rrwceZdZdZy)r{cd|zfddifS)Nrbaserr%r2s r__getnewargs_ex__z!ComplexNewObjEx.__getnewargs_ex__U
st~|++rN)r<r=r>rr%rrr{r{T
s,rr{ceZdZdZy)rc|jyr$)r)r.r0s  r__getattr__zBadGetattr.__getattr__Y
s	rN)r<r=r>rr%rrrrX
srrcNeZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
y)
AbstractPickleModuleTestscttd}	|j|jt|j
d|t
jty#t
jtwxYwNr{rrcloserr+rrunlinkr.r
s  rtest_dump_closed_filez/AbstractPickleModuleTests.test_dump_closed_file_
Q	%
GGIj$))S!<V$IV$2AA9cttd}	|j|jt|j
d|t
jty#t
jtwxYwrr r#s  rtest_load_closed_filez/AbstractPickleModuleTests.test_load_closed_fileg
r%r&ctj}didg}|j|||jd|j	|}|j||y)Nr|r)r6rBrr8loadr)r.streamrrs    rtest_load_from_and_dump_to_filez9AbstractPickleModuleTests.test_load_from_and_dump_to_fileo
sOR~		$AIIf%	D)rcD|jtjdyr)rrr)r2s rtest_highest_protocolz/AbstractPickleModuleTests.test_highest_protocolw
s00!4rctj}|jd|d|jd|d|jdd|jdd|j	|d|j	|dy)Nrr)filerr)r6rBrrPicklerr#s  rtest_callapiz&AbstractPickleModuleTests.test_callapi{
skJJL		#q"		#A	+

3

3
$QQ$rc2ttd}	tD]%}|jt|j
d||'	|j
tjty#|j
tjtwxYw)Nwr)	rrrrrrr!rr"r_s   rtest_dump_text_filez-AbstractPickleModuleTests.test_dump_text_file
sr	%"
G!!)TYYQF
G
GGIV$
GGIV$s.A+++Bctjd}|jttj
tjf|j|y)NsX''.)	r6rBrrrOrrrcr+)r.rs  rtest_incomplete_inputz/AbstractPickleModuleTests.test_incomplete_input
s8JJw8V\\63I3IJDIIWXYrcGdd|j}Gdd|j}|jtj|j
d|jtj|jy)NceZdZdZy);AbstractPickleModuleTests.test_bad_init.<locals>.BadPicklercyr$r%r2s rrHzDAbstractPickleModuleTests.test_bad_init.<locals>.BadPickler.__init__
rrNrcr%rr
BadPicklerr;
$rr=ceZdZdZy)=AbstractPickleModuleTests.test_bad_init.<locals>.BadUnpicklercyr$r%r2s rrHzFAbstractPickleModuleTests.test_bad_init.<locals>.BadUnpickler.__init__
rrNrcr%rrBadUnpicklerr@
r>rrBr)r2	Unpicklerrrrrrcr+)r.r=rBs   r
test_bad_initz'AbstractPickleModuleTests.test_bad_init
sb	%	%	%4>>	%	
&..
0A0A1E&00,.2E2EFrc@td}tddD]5}|jt5|||gjddd7tdt
jdzD]}g}|j}||||}|jd||jt|dd|jt
j5||ddd|||}|j||y#1swYxYw#1swY4xYw)Nsfoorr)rrlrru)rr7rr+rrr)rrrrcr)	r.rrrrrtrlrrs	         rcheck_dumps_loads_oob_buffersz7AbstractPickleModuleTests.check_dumps_loads_oob_buffers
sF#1a[	1E"":.
1cE&(ii1
1
1	1
1f559:	$EG%nnOu)8:DVT*U71:.7""6#9#9:
d
g.CMM#s#	$
1
1

sD	DD	D	cP|j|j|jyr$)rFrrr2s rtest_dumps_loads_oob_buffersz6AbstractPickleModuleTests.test_dumps_loads_oob_buffers
s**4::tzzBrc>fd}fd}j||y)Ncttj}j||fi||jSr$)r6rBrrD)rrr
r.s   rrzCAbstractPickleModuleTests.test_dump_load_oob_buffers.<locals>.dumps
s/

ADIIc1''::<rcTtj|}j|fi|Sr$)r6rBr+)rrr
r.s   rrzCAbstractPickleModuleTests.test_dump_load_oob_buffers.<locals>.loads
s'

4 A499Q)&))r)rF)r.rrs`  rtest_dump_load_oob_buffersz4AbstractPickleModuleTests.test_dump_load_oob_buffers
s	 
	*	
**5%8rN)r<r=r>r$r(r-r/r3r6r8rDrFrHrLr%rrrr]
s<%%*5%%Z
G$0C9rrceZdZdZdZdZy)AbstractPersistentPicklerTestsct|tr(|dzdk(r |xjdz
c_t|S|dk(r|xjdz
c_yy)Nrrrtest_false_valuerW)rrid_countryfalse_count)r.r?s  rrz,AbstractPersistentPicklerTests.persistent_id
sNfc"vzQMMQMv;
)
)!rcv|s|xjdz
c_y|xjdz
c_t|}|S)NrrP)load_false_count
load_countr)r.oidr?s   rpersistent_loadz.AbstractPersistentPicklerTests.persistent_load
s5!!Q&!%OOq OXFMrc	ttddgz}tD]}d|_d|_d|_d|_|j|j|j||||j|jd|j|jd|j|jd|j|j
dy)Nr^rPrrr)
rr7rrQrRrTrUrrr)r.Lrs   rtest_persistencez/AbstractPersistentPicklerTests.test_persistence
srO122		7EDM D$%D!DOTZZ

1e(<=qAT]]A.T--q1T__a0T22A6		7rN)r<r=r>rrWrZr%rrrNrN
s7rrNc*eZdZdZdZdZdZdZy)&AbstractIdentityPersistentPicklerTestsc|Sr$r%)r.rs  rrz4AbstractIdentityPersistentPicklerTests.persistent_id

rc|Sr$r%)r.pids  rrWz6AbstractIdentityPersistentPicklerTests.persistent_load
r^rc|j|j||}|j|t||j	||yr$)rrr*rr)r.rrrs    r_check_return_correct_typezAAbstractIdentityPersistentPicklerTests._check_return_correct_type
s?JJtzz#u56	ic3C(rctD]<}|dk(r|jddddddtfD]}|j||>y)Nrrsabc
zabc
rg*\()rrbry)r.rrs   rtest_return_correct_typez?AbstractIdentityPersistentPicklerTests.test_return_correct_type
sV	@Ez//q9$gr:sC@C33C?@	@rcd}|jtj|j|dtj|jdzdz}|jtj|j|y)Nu∅rrr*)rrrrPERSIDr rcr)r.
non_ascii_strrs   rtest_protocol0_is_ascii_onlyzCAbstractIdentityPersistentPicklerTests.test_protocol0_is_ascii_onlys_'
&..

M1M---"6"6w"??&H&00$**gFrN)r<r=r>rrWrbrdrhr%rrr\r\
s)
@Grr\cVeZdZdZdZdZdZdZdZdZ	ddd	Z
d
ZdZdZ
d
Zy)#AbstractPicklerUnpicklerObjectTestsNcyr$r%r2s rrz)AbstractPicklerUnpicklerObjectTests.setUprrc$gd}tD]}tj}|j||}|j	||j}|j
d|j|j	||j}|j|j
d|j|j	||j}|j|||j||y)Nabcdefgrn,r)rr6rB
pickler_classrrDr8truncate
clear_memorr)r.rrr
r
first_pickledsecond_pickled
third_pickleds        rtest_clear_pickler_memoz;AbstractPicklerUnpicklerObjectTests.test_clear_pickler_memos*	;E

A((E2GLLJJLM
FF1I
JJLLLZZ\N
 
FF1I
JJLLLJJLM
~>]M:/	;rcjgd}tj}|j|}|j||j	}tj}|j|}|j
|_|j||j	}|j
||yNrm)r6rBrprrDmemor)r.rr
rrsprimedprimed_pickleds       rtest_priming_pickler_memoz=AbstractPicklerUnpicklerObjectTests.test_priming_pickler_memo6s)JJL$$Q'T


JJL##A&llDM>:rcgd}tj}|j|}|j||j	}tj}|j|}|j
|_|j||j	}|j
tj|}|j}|j|||j
tj|}|j
|_|j}	|j
j|j|	||j|	|uyrx)r6rBrprrDryunpickler_classr+rrr)
r.rr
rrsrzr{	unpicklerunpickled_data1unpickled_data2s
          rtest_priming_unpickler_memoz?AbstractPicklerUnpicklerObjectTests.test_priming_unpickler_memoHs)JJL$$Q'T


JJL##A&llD((M)BC	#..*$/%%bjj&@Ann ++-$/?:;rcgd}tj}|j|}|j||j	}gd}tj}|j|}|j||j	}tj}|j||j
d|j|}|j|j||j
d|j|j||j
d|j|j|y)Nrm)rnroror)r6rBrprrDrGr8r~rr+rq)r.data1r
rpickled1rppickled2rs        rtest_reusing_unpickler_objectszBAbstractPicklerUnpicklerObjectTests.test_reusing_unpickler_objectsfs*JJL$$Q'U::<#JJL$$Q'U::<JJL		q	((+	)51	q		

		q	)51rTr3c
tD]5}|j|5tdDcgc]}|t|fc}dtgz}|}|j||}|j
||j}d}	|||	z}|j|}
t|	D]c}|r|j}|j|
j||s8|j|jt	|ze|jt|
jddd8ycc}w#1swYIxYw)Nroisabcderr)rrr7ryr+rprrDr~r;rr+rr)
r.ioclassr3rr'rr
rrrrrrs
             r_check_multiple_unpicklingsz?AbstractPicklerUnpicklerObjectTests._check_multiple_unpicklingss)	<EE*
<.3Dk:!SV:h_LI,,Q,?U#**,GaK( 003	qGAffh$$Y^^%5u=((3W3EFG!!(INN;!
<
<	<:
<
<s#EEB'E'AEEE	cB|jtjyr$)rr6rBr2s r"test_multiple_unpicklings_seekablezFAbstractPicklerUnpicklerObjectTests.test_multiple_unpicklings_seekables((4rc2|jtdyNFr)rr*r2s r$test_multiple_unpicklings_unseekablezHAbstractPicklerUnpicklerObjectTests.test_multiple_unpicklings_unseekables(((Frc2|jtdyr)rr@r2s r!test_multiple_unpicklings_minimalzEAbstractPicklerUnpicklerObjectTests.test_multiple_unpicklings_minimals	
((U(Crcttd}tD]}tddD]}tjtj
|}|j
||}|j||jd|j|}|j|j|y)Nr^r)buffer_sizerr)rr7rr6BufferedRandomrBrprr8r~rr+)r.rrbuf_sizer
rrs       r"test_unpickling_buffering_readlinezFAbstractPicklerUnpicklerObjectTests.test_unpickling_buffering_readlinesE"I	9E!!RL
9%%bjjlI,,Q,?T"q	 003	  !148

9	9r)r<r=r>rpr~rrvr|rrrrrrrr%rrrjrj
sHMO$;@;$<<22@D<(5GD
9rrjreduce_AceZdZdZy)rcttffSr$)ryrr2s rrszAAA.__reduce__sXKrNrr%rrrrs rrceZdZdZdZy)BBBcd|_y)Nzsome attributer~r2s rrHzBBB.__init__s"rcd|_y)NBBB.__setstate__rrs  rrzBBB.__setstate__s	#rN)r<r=r>rHrr%rrrrs"
$rrcd|_y)atCustom 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)rrs  rsetstate_bbbrs
"CErceZdZdZdZy)AbstractCustomPicklerClassz<Pickler implementing a reducing hook using reducer_override.ct|dd}|dk(rtdfS|dk(rtdfS|dk(ry|dk(rtd	tS)
Nr<r
)rMyClass)some strgFhThe reducer just failed)rrryr+r)r.robj_names   rreducer_overridez+AbstractCustomPicklerClass.reducer_overrides[3
D1s?:y 
%%
_
_677rN)r<r=r>rIrr%rrrrs
Frrc6eZdZdZej
dZy)AbstractHookTestsc*d}d}d}Gdd}tdtjdzD]:}|j|5t	j
}|j
||}|j||tjgtj|j\}}	}
|j|d	|j|	d
|j|
tj|jtj5|j|ddd|j!t"d5|j|dddddd=y#1swYExYw#1swY!xYw#1swYaxYw)Ncyr$r%r%rrr
z.AbstractHookTests.test_pickler_hook.<locals>.fr]rcyr$r%r%rrrz.AbstractHookTests.test_pickler_hook.<locals>.gr]rcyr$r%r%rrrz.AbstractHookTests.test_pickler_hook.<locals>.hr]rceZdZy)4AbstractHookTests.test_pickler_hook.<locals>.MyClassNrkr%rrrrr!rrrrrorrr)r7rr)rr6rBrprmathlogrrDrrrrassertRaisesRegexr+)r.r
rrrrbiornew_fsome_strmath_logs           rtest_pickler_hookz#AbstractHookTests.test_pickler_hooksS
					1f559:	EE*
jjl&&sE27DHH-.,2LL,H)x  *  :6


h1&&v';';<FF1I++"$=?FF1I%

	 %

s=CFE0,F
E<F0E95F<FFF	ctdtjdzD]}|j|5d}t	j
|}t
j}|j||}|j|tj|j}~~|j|dddy#1swYxYw)Nrrrocyr$r%r%rrr
zEAbstractHookTests.test_reducer_override_no_reference_cycle.<locals>.fsr)
r7rr)rr>refr6rBrprrrDrT)r.rr
wrrrrs       r(test_reducer_override_no_reference_cyclez:AbstractHookTests.test_reducer_override_no_reference_cycles1f559:	(EE*
([[^jjl&&sE2q	S\\^4!!"$'
(
(	(
(
(sBC		C	N)r<r=r>rrcpython_onlyrr%rrrrs"&P
((rrc$eZdZdZdZdZdZy)AbstractDispatchTableTestsctj}|j|d}|jt5|j
ddd|j
t|dy#1swY%xYw)Nrdispatch_table)r6rBrprr^rrJr)r.r
rs   rtest_default_dispatch_tablez6AbstractDispatchTableTests.test_default_dispatch_table'saJJLq!$


~
.	
	$456		s
A--A6cjGfddjdfd	}j|y)NceZdZWZy)GAbstractDispatchTableTests.test_class_dispatch_table.<locals>.MyPicklerN)r<r=r>r)dtsr	MyPicklerr3sNrrctj}||}j|j|j	||jSr$)r6rBrrrrD)rrr
rrrr.s    rrzCAbstractDispatchTableTests.test_class_dispatch_table.<locals>.dumps6sG

A!X&AQ--r2
FF3K::<rr$)get_dispatch_tablerp_test_dispatch_table)r.rrrs` @@rtest_class_dispatch_tablez4AbstractDispatchTableTests.test_class_dispatch_table/s:

$
$
&	 **	 	 	
!!%,rcZjdfd	}j|y)Nctj}j||}|_j	|j|j||j
Sr$)r6rBrprrrrD)rrr
rrr.s    rrzFAbstractDispatchTableTests.test_instance_dispatch_table.<locals>.dumpsCsU

A""1h/A!AQ--r2
FF3K::<rr$)rr)r.rrs` @rtest_instance_dispatch_tablez7AbstractDispatchTableTests.test_instance_dispatch_table?s(

$
$
&	 	
!!%,rcfd}d}d}|j||||j|||dfd}||t<|j|||j|||t}t}|j||t|j||t|j||t|j||t||t<|j||t|j|||j||t|j||tdfd}	|	|t<|t=|j|||j||t|j||t|j||t|j||jdd	}
|
|t<|j||jd
y)Nc<tj|dSNr)rr)rrs rcustom_load_dumpzIAbstractDispatchTableTests._test_dispatch_table.<locals>.custom_load_dumpNs<<c1
..rcTtjtj|dSr)rrrrks rdefault_load_dumpzJAbstractDispatchTableTests._test_dispatch_table.<locals>.default_load_dumpQs<<S! 455ry?@reduce_1ctffSr$rx)rREDUCE_1s rrzAAbstractDispatchTableTests._test_dispatch_table.<locals>.reduce_1\##rreduce_2ctffSr$rx)rREDUCE_2s rrzAAbstractDispatchTableTests._test_dispatch_table.<locals>.reduce_2srrrc6td|jddtfSrg)rrZrrks r
reduce_bbbzCAbstractDispatchTableTests._test_dispatch_table.<locals>.reduce_bbbsCLL$lBBrr)rcomplexrrrr*r~)
r.rrrrrrr~rrrrrs
 `         @@rrz/AbstractDispatchTableTests._test_dispatch_tableMs	/	6

)!,a0*1-q1	$"*w)!,h7*1-q1
EE)!,h7.q137*1-x8/2C8's)!,h7)!,h7*1-x8/2C8	$&s3)!,h7.q137*1-x8/2C8	
*1-//1CD	C)s	
)!,..0EFrN)r<r=r>rrrrr%rrrr%s7- -@Grrr zDATA{0} = (rz	    {0!r}rz# Disassembly of DATA{0}zDATA{0}_DIS = """\z""")rrrNrr6rrrrrrrOrrrrr>textwraprhttp.cookiesrrrtestrtest.supportrrrr	r
rrtest.support.import_helperr
test.support.os_helperrrtest.support.warnings_helperrrnumpyr
skipUnlessrrr7r)rrr"r(rBr*r?r@rKrXr_rerjrnrtr=rrvr{rrrrrrrrtrrrr#rr$r	DATA2_DISr	DATA3_DISr	DATA4_DISr4r6r8rArithmeticErrorr
r^rBufferErrorBytesWarningDeprecationWarningrEnvironmentErrorr<FloatingPointError
FutureWarning
GeneratorExitIOError
ImportWarningIndentationError
IndexErrorKeyErrorKeyboardInterruptLookupErrorMemoryError	NameErrorr,rrdPendingDeprecationWarningReferenceErrorrRuntimeWarning
StopIterationSyntaxError
SyntaxWarningSystemError
SystemExitTabErrorrUnboundLocalErrorUnicodeErrorUnicodeWarningUserWarningr+Warningrr:r;r=rrrrrrrrrr=r[rr=floatrrrryrrr@rrr5rrTr5rrrr6rrCr~rFrwr{rrrNr\rjrrrrrrrr<r!r'rrrrrr+jrr%rr<module>rs>
		



%".))F
	&	(#x""3;;#6#MO
&))A-.	

&2::&	%	%,::*//


		  





Ca			Fi	88 E 8 	 8G(G(\(P
	f% >
	B	7
	t	
7
	t.@
	FQTQ
L	.#.#.#.#	.#
.#
.#.#
.#.#.#.#.#.#.#.# !.#"#.#$%.#&
'.#().#*+.#,-.#./.#01.#23.#45.#67.#89.#:;.#<=.#@A.#BC.#DE.#FG.#HI.#J
K.#LM.#NO.#PQ.#RS.#TU.#VW.#XY.#Z[.#`<,


*b	!b	!Lb0b0J5||Bff@@1v1'v'<f<DD** CeCeTTC#)#G

I
ffe[
:	
3LvK3K!L!,l,
h9h9V%7%7PGG:\9\9B & $&$	"0?(?(DhGhGVz
A
6**1,
-FLLA
m""1%&q#a&"%	)Aa!B$i A+$$Q'(	)	c


(//23
&--a01A
h
	s{K(	
Bs<SS8S+S8S('S(+S50S88TT