python (3.12.0)

(root)/
lib/
python3.12/
test/
__pycache__/
test_codecs.cpython-312.opt-2.pyc

͑e	ddlZddlZddlZddlZddlZddlZddlZddlmZddlm	Z	ddl
mZ	ddlZ	ddlZ	ddlZej ej"ZdZdZGdd	eZGd
dZGdd
eZGddeej2ZGddeej2ZGddeej2ZGddeej2ZGddeej2ZGddeej2ZGddeej2Z Gddeej2Z!Gddej2Z"Gd d!ej2Z#Gd"d#e ej2Z$Gd$d%ej2Z%gd&Z&e&D]Z'e(e'd'k7se)e*e'Gd(d)ej2Z+gd*Z,Gd+d,ej2Z-Gd-d.ej2Z.Gd/d0ej2Z/Gd1d2ej2Z0Gd3d4ej2Z1gd5Z2e3ed6re2jid7e3ed8re2jid9d:gZ5Gd;d<ej2eZ6Gd=d>ej2Z7Gd?d@ej2Z8GdAdBej2Z9GdCdDeej2Z:GdEdFeej2Z;GdGdHej2Z<GdIdJej2Z=GdKdLej2Z>gdMZ?dNdOgdPggdQdRgdSgdTZ@	ddlAZAe?jidUdVdWge@dU<	ddlBZBe?jidXdYge@dX<GdZd[ej2ZCiZDd\ZEGd]d^ej2ZFejejd_k(d`Gdadbej2ZIGdcddej2ZJGdedfej2ZKGdgdhej2ZLejedudiGdjdkej2ZNGdldmej2ZOGdndoej2ZPGdpdqej2ZQeRdrk(rejyy#e
$rdZYswxYw#e
$rdZY|wxYw#e
$rdZdZYkwxYw#e
$rdZAY|wxYw#e
$rYlwxYw)sN)mock)support)	os_helpercfd}|S)NcLj||t|fyN)assertEquallen)inputexpectcoderselfs  D/BuggyBox/python/3.12.0/bootstrap/lib/python3.12/test/test_codecs.pycheckzcoding_checker.<locals>.checks uE
';<)rrrs`` rcoding_checkerrs
=Lrc

ddlm}m}m}ddlm}m
mmm	}ddd
G

fddtj}|||||}|d	|d
f}|}	||d|	S)Nr)POINTERWINFUNCTYPEWinDLL)BOOLBYTEWCHARUINTDWORDicZeZdZdWfdWWzfdWWzfdWfdWfdWWzfgZy)'is_code_page_present.<locals>.CPINFOEXWMaxCharSizeDefaultCharLeadByteUnicodeDefaultCharCodePageCodePageNameN)__name__
__module____qualname___fields_)rMAX_DEFAULTCHAR
MAX_LEADBYTESMAX_PATHrrsr	CPINFOEXWr!+sH"D)"D$89m!34)51&#U8^46rr/GetCPInfoExWkernel32)ctypesrrrctypes.wintypesrrrrr	Structure)cprrrrrr/	prototypeGetCPInfoExinforr,r-r.rrs          @@@@@@ris_code_page_presentr9$sv33>>MOH66F$$6D$wy/ABI^VJ-?@AK;Dr1d##rc"eZdZ	dZdZddZy)Queuec||_yr	_buffer)rbuffers  r__init__zQueue.__init__<s	rc.|xj|z
c_yr	r=)rcharss  rwritezQueue.write?src|dkr"|j}|jdd|_|S|jd|}|j|d|_|SNrr=)rsizess   rreadz
Queue.readBsP6A<<+DLHUd#A<<.DLHrN)r)r(r)r*r@rCrHrrrr;r;8srr;ceZdZdZdZy)MixInCheckStateHandlingc\tt|dzD]}tj|}|j	|d|}|j}|j
|dt|ds]|j|ddddf|j|j	|d|j||jtj|}|j||j	||dd}|j|||zy)NrT)rangercodecsgetincrementaldecoderdecodegetstateassertIsInstanceintsetstate
assertTruer
	rencodingurGidpart1statepart2s	         rcheck_state_handling_decodez3MixInCheckStateHandling.check_state_handling_decodeNss1vax	-A6,,X68AHHQrUOEJJLE!!%(C08

E!HRaL!,-AHHU1X$6 67  

57,,X68A
JJuHHQqrUD)EQe,'	-rcbtt|dzD]}tj|}|j	|d|}|j}tj|}|j
||j	||dd}|j|||zy)NrLT)rMrrNgetincrementalencoderencoderQrTr
rVs	         rcheck_state_handling_encodez3MixInCheckStateHandling.check_state_handling_encodedss1vax	-A6,,X68AHHQrUOEJJLE6,,X68A
JJuHHQqrUD)EQe,	-rN)r(r)r*r^rbrrrrJrJMs-,-rrJcFeZdZdZdZdZdZdZdZdZ	dZ
d	Zd
Zy)ReadTestc
td}tj|j|}d}t	|j|j|dD]E\}}|j
t|g||jz
}|j||G|j|jd|j|jdtj|j}d}t	|j|j|dD]5\}}||jt|gz
}|j||7|j|jddd|j|jd|jd}t	|j|j|dD]5\}}||jt|gz
}|j||7|j|jddd|j|jd|j|j}	|j|djtj |	Dcgc]}t|gc}|jycc}w)NrTstrict)r;rN	getreaderrWziprarCbytesrHr

bytebufferrOrPr?resetjoin
iterdecode)
rrpartialresultsqrresultc
partialresultrZencodeds
          r
check_partialzReadTest.check_partialpsF

#J+FT]]+A."%ell4==&A>Z^"_	4Q

GGE1#JaffhFV]3	4
	
2&s+
8F((79"%ell4==&A>Z^"_	4Q
ahhuaSz**FV]3	4	
#t,b13'	
	"%ell4==&A>Z^"_	4Q
ahhuaSz**FV]3	4	
#t,b13',,t}}-GGF%%7&CauaSz&CT]]ST	
&CsKc>fddfd	}d}d}d}j||d|j||d|j||dd|j||dd|d	}g}g}t|D]<\}}	|j|d
zd
zdz|	z|j|d
zd
zdz>j|dj|dd
j|j|dj|dd
j|t	dD]}
|D]}	d|
dz|	zdzz}|}t	dD]L}j|jd|
dz|	zj|jddN|}t	dD]I}j|jd|
dzj|jddKy)Nctj|jj}t	j
j|Sr	ioBytesIOrarWrNri)rstreamrs  rriz)ReadTest.test_readline.<locals>.getreaders:ZZT]] ;<F26##DMM26::rTc|}g}	|j||}|sn|j|(dj|S)N)rFkeepends|)readlineappendrn)rrrFreaderlineslineris      rreadalllinesz,ReadTest.test_readline.<locals>.readalllinessNu%FED8DT"	
88E?"rufoo
bar
baz
spam
eggsufoo
|bar
|baz
|spam
|eggszfoo|bar|baz|spam|eggsF
)


u
uあrfrPazxxx
rxxx)TN)r
	enumeraterrnrMr)
rrrG	sexpectedsexpectednoendslineendsvwvworYlineendrFrris
`           @r
test_readlinezReadTest.test_readlines/	;	#
.9	1a.	:a/Aar2I>a3_E1
%h/	-LQIIquSy(*W45JJ#c	8+,	-	
bggbk48#((2,Gbggbk59388C=I"I	D#
S7*W45"1rA$$6S7*$$6#1rA$$7S$$7
	rc`gd}dj|fd}|}j|j|dj|jdj|ddj|jd|}j|j|dj|jd|ddj|jddj|jdt	|ddzddd|}j|j|dj|j|ddj|jd|}j|jdd	ddj|jddj|jd|}j|jdd	ddj|jddj|jddj|jdd
d|}j|jdd	ddj|j|dddg|ddzj|jdy)N)zHumpty Dumpty sat on a wall,
z!Humpty Dumpty had a great fall.
z-All the king's horses and all the king's men
z#Couldn't put Humpty together again.rfctjjj}t	j
j|Sr	rz)r}datars rriz8ReadTest.test_mixed_readline_and_read.<locals>.getreaders:ZZDMM :;F26##DMM26::rrrLd()rFrBj)rnr
rrHr	readlines)rrrifrs`   @rtest_mixed_readline_and_readz%ReadTest.test_mixed_readline_and_reads8wwu~	;

KuQx027759#562&
KuQx0E!HQK0B'd3uQx=1+<+=&>t&DE
KuQx0ab	22&
KRq148<48,2&
KRq148<DG,B'd1Sk2
KRq148<q!"qr(BC2&rc gd}tjdj|j|j}tj|j|}t|D]\}}|j|||y)N)=z:<%!--===================================================
z,    BLOG index page: show recent articles,
z7    today's articles, or articles of a specific date.
z>========================================================--%>
z!<%@inputencoding="ISO-8859-1"%>
z<%@pagetemplate=TEMPLATE.y%>
z$<%@import=import frog.util, frog%>
z!<%@import=import frog.objects%>
z9<%@import=from frog.storageerrors import StorageError%>
z<%
rzimport logging
z+log=logging.getLogger("Snakelets.logger")
rrzuser=self.SessionCtx.user
z-storageEngine=self.SessionCtx.storageEngine
rrz-def readArticlesFromDate(date, count=None):
z2    entryids=storageEngine.listBlogEntries(date)
z%    entryids.reverse() # descending
z    if count:
z#        entryids=entryids[:count]
z
    try:
z\        return [ frog.objects.BlogEntry.load(storageEngine, date, Id) for Id in entryids ]
z    except StorageError,x:
z6        log.error("Error loading articles: "+str(x))
z,        self.abort("cannot load articles")
rzshowdate=None
rzarg=self.Request.getArg()
zif arg=="today":
z,    #-------------------- TODAY'S ARTICLES
z-    self.write("<h2>Today's articles</h2>")
z(    showdate = frog.util.isodatestr() 
.    entries = readArticlesFromDate(showdate)
zelif arg=="active":
z4    #-------------------- ACTIVE ARTICLES redirect
z     self.Yredirect("active.y")
zelif arg=="login":
z/    #-------------------- LOGIN PAGE redirect
z    self.Yredirect("login.y")
zelif arg=="date":
z7    #-------------------- ARTICLES OF A SPECIFIC DATE
z2    showdate = self.Request.getParameter("date")
zV    self.write("<h2>Articles written on %s</h2>"% frog.util.mediumdatestr(showdate))
rzelse:
z+    #-------------------- RECENT ARTICLES
z,    self.write("<h2>Recent articles</h2>")
z.    dates=storageEngine.listBlogEntryDates()
z    if dates:
z        entries=[]
z        SHOWAMOUNT=10
z         for showdate in dates:
zW            entries.extend( readArticlesFromDate(showdate, SHOWAMOUNT-len(entries)) )
z*            if len(entries)>=SHOWAMOUNT:
z                break
z                
rf)	r{r|rnrarWrNrirr
)rrGr}rrYrs      rtest_bug1175396zReadTest.test_bug1175396sx>
~BGGAJ--dmm<=0!!$--08"6*	)IQT1Q4(	)rctd}tj|j|}tj|j|}|jd|j
|jdd|jd|j
|jdd|j
|jdd|jd	|j
|jdd	|j
|jdd|jd|j
|jd
d|jd|j
|jd
d|j
|jd
d|jd	|j
|jd
d	|j
|jd
d|jd
|j
|jd
d
y)Nrzfoo
Frfooz
bar
rfbarbazTrzbar
zfoo
)r;rN	getwriterrWrirCr
r)rrqwriterrs    rtest_readlinequeuezReadTest.test_readlinequeueKs#J0!!$--030!!$--03	W%8%@Y%8"=%8%@U%8%@%8"=	W$7AY$7>$7AU$7?$7<Y$7Crcd}d}d}||z|zj|j}tj|}t	j
|j|}|j
|j||j
|j||j
|j||j
|jdy)NzAxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
z`offending line: ladfj askldfj klasdj fskla dfzaskdj fasklfj laskd fjasklfzzzzaa%whereisthis!!!
znext line.
rfrarWr{r|rNrir
r)rs1s2s3rGr}rs       rtest_bug1098990_azReadTest.test_bug1098990_afs
R
q

U2Xdmm,A0!!$--08*B/*B/*B/*B/rcZd}d}d}d}d}||z|z|z|zj|j}tj|}t	j
|j|}|j
|j||j
|j||j
|j||j
|j||j
|j||j
|jdy)Nzaaaaaaaaaaaaaaaaaaaaaaaa
zbbbbbbbbbbbbbbbbbbbbbbbb
zstillokay:bbbbxx
zbroken!!!!badbad
zagainokay.
rfr)	rrrrs4s5rGr}rs	         rtest_bug1098990_bzReadTest.test_bug1098990_bss
+
+
#
#

U2Xb[^##DMM2A0!!$--08*B/*B/*B/*B/*B/*B/r�c|jtdj|j|j	dj|jddj|j|j	dj|jddj|j|j	dj|jddj|j|j	dj|jdd	j|j|j	dj|jd
dj|j|j	dj|jdd	j|j|j	dj|jd
d
j|jdj|j}dD]\}}|j|jt|d}|j|jt|d}|dz|z}||z|jz|z}|jt|j|j|j	|j|jd||j	|j|jd||j	|j|jd||z|j	|j|jd
||jz|zdjd|jD}|j	|j|jd||z|zy)Nu[]backslashreplacez[\udc80]namereplacexmlcharrefreplacez
[&#56448;]ignore[]replacez[?][]z[??]rf))𐿿A)[])rr
surrogatepassc3&K|]	}d|zyw)\x%02xNr).0bs  r	<genexpr>z0ReadTest.test_lone_surrogates.<locals>.<genexpr>s'J+,(11}'Js)assertRaisesUnicodeEncodeErrorrarWr
rill_formed_sequenceUnicodeDecodeErrorrPill_formed_sequence_replacern)	rbombeforeafterbefore_sequenceafter_sequencetest_string
test_sequencers	         rtest_lone_surrogateszReadTest.test_lone_surrogatess<,hoot}}M**4==:LM$++DMM:	<**4==-H$++DMM:	<**4==:MN%,,T]];	=**4==(CT]]3	5**4==)Ddmm4	6	
)00IT]]3	5)00	Jt}}5	7ii

&3	@MFE$mmDMM:3s89EO"\\$--8SCN 8+e3K ?2!5568FGM0-2F2F"mm
-[//

0?A*
,
]11$--2AC(
*
]11$--J#e^
-]11$--K#d&F&FFN
P!ww'J040H0H'J J]11$--AST#&66>
@+	@rcdj|jd}tdt|D]p}t	j
|jd}|j
|j|d|d|j
|j||dddrdj|jd}tdt|D]o}t	j
|jd}|j
|j|d|d|j
|j||ddqy)NurrLrfTu)rarWrMrrNrOr
rP)rrrYdecs    rtest_incremental_surrogatepassz'ReadTest.test_incremental_surrogatepassst}}o>q#d)$	CA=&..t}}=oNCSZZRa126SZZQR$7B	C
t}}o>q#d)$	=A=&..t}}=oNCSZZRa126SZZQR18<	=rN)
r(r)r*rwrrrrrrrrrrrrrdrdos?)
V9v.'`C)JD600"#+*@X=rrdcjeZdZdZej
dk(rdZndZdZdZdZ	dZ
d	Zd
ZdZ
dZd
Zy)	UTF32Testutf-32little܀s$spamspams$spamspamctj|j\}}}}tj}||}|jd|jd|j
}|j||jk(xs||jk(tj|}||}|j|jdyNspamspamspamrNlookuprWr{r|rCgetvaluerUspamlespamber
rHr_rrrGrrZs       rtest_only_one_bomzUTF32Test.test_only_one_bom"MM$--8!F6JJL1I		
JJLT[[(<A,<=JJqM1I:.rcltjd}tj|j|}|jt|jtjd}tj|j|}|jt|jy)Nsr{r|rNrirWrUnicodeErrorrHrrGrs   rtest_badbomzUTF32Test.test_badboms|JJy!+FT]]+A.,/JJy!+FT]]+A.,/rc,|jdgdy)NÿĀ￿𐀀)rfrfrfrfrfrfrfrrrÿrrrÿĀrrrÿĀ￿rrrrrwrs rtest_partialzUTF32Test.test_partials,
	
rc|jdtjddd|jdtjdddyN)rrLrT)rfrLrr
rN
utf_32_decoders r
test_handlerszUTF32Test.test_handlersH--gy$G	I--gxF	HrcR|jttjdddyNrhT)rrrNrrs rtest_errorszUTF32Test.test_errors",f.B.B!8T	3rc|j|jd|j|j|jd|jyNrr^rWrrrs rtest_decoder_statezUTF32Test.test_decoder_state>(()3T[[	B(()3T[[	Brcd}|jdtj|dd}|jdtj|dy)Ns𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀rsr)r
encoded_le
encoded_bes   rtest_issue8941zUTF32Test.test_issue8941sWF
,--j9!<	>E
,--j9!<	>rN)r(r)r*rWsys	byteorderrrrrrrrrr
rrrrrrsTH
}} 11FFFF
/0
>H3B>rrc,eZdZdZdZdZdZdZdZy)UTF32LETest	utf-32-lerc,|jdgdyNr)rfrfrfrrrrrrrrrrrrrrrrrrrs rrzUTF32LETest.test_partial',
	
rcZ|jdj|jdy)N𐈃sr
rarWrs rtest_simplezUTF32LETest.test_simpleB",,T]];=PQrcR|jttjdddyr)rrrNutf_32_le_decoders rrzUTF32LETest.test_errorsE",f.E.E!8T	3rcXd}|jdtj|dy)Nsrr)r
rNr"rrvs  rrzUTF32LETest.test_issue8941I--,009!<	>rN	r(r)r*rWrrrrrrrrrr#"H-
6R3>rrc,eZdZdZdZdZdZdZdZy)UTF32BETest	utf-32-berc,|jdgdyrrrs rrzUTF32BETest.test_partialUrrcZ|jdj|jdy)Nrsrrs rrzUTF32BETest.test_simplepr rcR|jttjdddyr)rrrNutf_32_be_decoders rrzUTF32BETest.test_errorssr#rcXd}|jdtj|dy)Nsrr)r
rNr/r%s  rrzUTF32BETest.test_issue8941wr&rNr'rrrr*r*Qr(rr*cpeZdZdZej
dk(rdZndZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZy)	UTF16Testutf-16r܀sspamspamsspamspamctj|j\}}}}tj}||}|jd|jd|j
}|j||jk(xs||jk(tj|}||}|j|jdyrrrs       rrzUTF16Test.test_only_one_bomrrcltjd}tj|j|}|jt|jtjd}tj|j|}|jt|jy)Nsrrrs   rrzUTF16Test.test_badboms}JJ{#+FT]]+A.,/JJ*++FT]]+A.,/rc,|jdgdy)Nr)rfrfrfrrrrrrrrrrrrrs rrzUTF16Test.test_partials,
	
rc|jdtjddd|jdtjdddyr)r
rN
utf_16_decoders rrzUTF16Test.test_handlersrrcR|jttjdddyr)rrrNr:rs rrzUTF16Test.test_errorsr	rc|j|jd|j|j|jd|jyrrrs rr
zUTF16Test.test_decoder_staterrcd}|j|j}|jtjtj
t
tj
d5}|j|dddtjtj
d|j5}|j|j|dddy#1swYcxYw#1swYyxYw)NzHello
world
wbrrrW)rarW
addCleanuprunlinkTESTFNopenrCrNr
rH)rrrGfprs     rtest_bug691291zUTF16Test.test_bug691291s
"IIdmm$	(()*:*:;
)""D
)	RHHQK	
[[))3"&--1	04:V[[]B/	0	0			0	0s&C0!C&C#&C/cdD]u}|jt5}tjtj
||jddd|jdtjwdD]u}|jt5}tjtj
||jddd|jdtjwy#1swYxYw#1swY=xYw)N)UrUzr+Ur?zinvalid mode)rtwtatzr+tz'can't have text and binary mode at once)
r
ValueErrorrNrCrrBrWassertInstr	exception)rmodecms   rtest_invalid_modeszUTF16Test.test_invalid_modess&	=D"":.
L"I,,dT]]K
LMM.#bll*;<	=
.	-D"":.
L"I,,dT]]K
LMMCbll+
-	-	
L
L

L
Ls1C61D6C?	D	N)r(r)r*rWrrrrrrrrrrr
rErRrrrr2r2sSH
}} ))
@F
@F
/0
*H3B
0
-rr2c&eZdZdZdZdZdZdZy)UTF16LETest	utf-16-ler4c,|jdgdyNr)rfrrrrrrrrrrrrrs rrzUTF16LETest.test_partial,

	
rcgd}|D]N\}}|jttj|dd|j	|jdd|Py)N)rr)sAZA�)s	ABCDZABCD�)sr)sAr)sA�A)sAr]rhTzutf-16ler)rrrNutf_16_le_decoder
rPrtestsrawexpecteds    rrzUTF16LETest.test_errors[
#	JMC0&2I2I!8T
3SZZ
I>I	Jrc|jdj|jd|jdj|jdy)Nrsީr
rarWrPrs rtest_nonbmpzUTF16LETest.test_nonbmpG,,T]];,	.,33DMMB%	'rNr(r)r*rWrrrrfrrrrTrTH%
&
J'rrTc&eZdZdZdZdZdZdZy)UTF16BETest	utf-16-ber5c,|jdgdyrWrrs rrzUTF16BETest.test_partialrXrcgd}|D]N\}}|jttj|dd|j	|jdd|Py)N)rZ)sAr[)s	ABCDZr\)sr)sr)sAr])sAr]rhTzutf-16ber)rrrNutf_16_be_decoder
rPr_s    rrzUTF16BETest.test_errors%rcrc|jdj|jd|jdj|jdy)Nrsrers rrfzUTF16BETest.test_nonbmp4rgrNrhrrrrkrkrirrkcLeZdZdZdZdZdZdZdZdZ	fdZ
d	Zd
ZxZ
S)UTF8Testutf-8su	���rc,|jdgdy)Nÿ߿ࠀ￿𐀀)rrrrÿ߿rvrvÿ߿ࠀrwrwÿ߿ࠀ￿rxrxrxrurrs rrzUTF8Test.test_partial@s2
	
rctd}|j|j||j|jy)Nu€ÿĀ߿ࠀ￿􏿿)r^rWra)rrXs  rr
zUTF8Test.test_decoder_stateVs.@(()*AHHT]],C	ErcdD]O\}}}|j|||5|j|j|j||dddQy#1swY\xYw)N)[]rr)r|ru[��])r|surrogateescape[])r|rz
[\x80\xff]r
error_handlerrb)subTestr
rPrWrrrrbs    rtest_decode_errorzUTF8Test.test_decode_error[sp.
		+)D-4}'/1
+  T]]M!J!)+
+
+
		+
+
+s-AA	ct||jdj|jd|j
dz|j
t5}dj|jddddj}|j|j|j|jdy#1swYIxYw)Nrr}s[]u[]u)superrr
rarWBOMrrrOobjectstartend)rrQexc	__class__s   rrzUTF8Test.test_lone_surrogatesgs
$&	
**4==:KLI-	/

1
2	Lb"))$--9JK	LllCIIcgg6G	L	LsCCcj|jdj|jd|jdz|jdj|jd|jdz|jdj|jd|jdz|jdj	|jdd|jdj	|jdd|jt
jd|jt5dj	|jdddd|jt5d	j	|jddddy#1swYDxYw#1swYyxYw)
Nu	abcdefrs	abcdefu𐿿s𐿿rs[]sabcsabcz)
r
rarWrrPrUrNlookup_errorrrrs rtest_surrogatepass_handlerz#UTF8Test.test_surrogatepass_handlersss..t}}oN$99	;+224==/R$CC	E)00P$AA	C	
.55dmm_U'	)8??

_+	-	
++O<=


1
2	B!!$--A	B


1
2	C""4==/B	C	C	B	B	C	Cs=F7F)F&)F2cXgd}dD]}dD]}|j||z|jd|D]b}|j|5tj|j
}|j
t|j|ddddy#1swYoxYw)N)r)ssssss)r)sssssssr)	rextendrrNrOrWrrrP)rcasesprefixsuffixrrs      rtest_incremental_errorsz UTF8Test.test_incremental_errorssP>	.F+
.Vf_-
.	.
	N	O	HD4(
HAf224==AC!!"4cjj$G
H
H	H
H
Hs
AB  B)	)r(r)r*rWrrrrr
rrrr
__classcell__rs@rrrrr:s;H)".

C
,E

+
HC&Hrrrc.eZdZdZdZdZdZdZdZy)UTF7Testutf-7czd}|j|j|j|jd|j|jdj|j|d}|j|j|j|jd|j|jdj|j||jdj|jd|jdj|jdd}|j|j|j|jd|j|jdj|j|dj	tt
ttdjt
||zd	z|zz
}|j|j|jd
y)NzGABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'(),-./:?asciiz !"#$%&*;<=>@[]^_`{|}za+bsa+-bz 	

rf+sX+AAAAAQACAAMABAAFAAYABwAIAAsADAAOAA8AEAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwBcAH4Afw-)	r
rarWrPrnsortedsetrkrM)rset_dset_owsother_asciis     r
test_asciizUTF7Test.test_asciis	
dmm4ell76KLg.55dmmDeL'dmm4ell76KLg.55dmmDeLdmm4g>

6>
4==1299W3EF7+224==A2FggfSuT{);)B)B)D%E%()<r)A%B&CDE++DMM:D	Erc,|jdgdy)Na+-bc€dĀe𐀀f) rra+za+-a+-brrrrza+-ba+-bcrrrrua+-bc€	a+-bc€drrrrua+-bc€dĀa+-bc€dĀerrrrrrrua+-bc€dĀe𐀀rrrs rrzUTF7Test.test_partial.!
$	
rc	gd}|D]i\}}|j|5|jttj|dd|j|j
dd|dddky#1swYvxYw)N))sbu�b)saba�b)sabua��b)sa+IKa�)sa+IK-br)sa+IK,br)sa+IKxa€�)sa+IKx-ba€�b)sa+IKwgrr)s	a+IKwgr-br)sa+IKwgr,r)s
a+IKwgr,-bu	a€�-b)sa+IKwgrB
a€€�)s
a+IKwgrB-ba€€�b)s
a+/,+IKw-ba�€b)sa+//,+IKw-br)sa+///,+IKw-ba￿�€b)s
a+////,+IKw-br)sa+IKw-bua€b�)sa+IKwbr)sa+@brrarhTrr)rrrrNutf_7_decoder
rPr_s    rrzUTF7Test.test_errorss
.#	KMC#&
K!!"4f6I6I #Xt5  GY!?J
K
K	K
K
KsA
A44A=	c`|jdj|jd|jdj|jd|jdj|jd|jdj|jd|jdj|jd|jdj|jd|jdj|jd|jdj|jd	|jd	j|jd|jd
j|jdy)Nu𐒠s+2AHcoA-us+2AHcoAu€𐒠s
+IKzYAdyg-s	+IKzYAdygu
€€𐒠s
+IKwgrNgB3KA-s+IKwgrNgB3KArers rrfzUTF7Test.test_nonbmpsF,,T]];[I..t}}={K++DMM:LI**4==9<H+224==A=Q--dmm<>PQ,,T]];=OP188G)	+)00?1	3//

>1	3rcgd}|D]B\}}|j|5|j|jdd|dddDy#1swYOxYw)N)
)sa+2AE-buab)sa+2AEbr)sa+2AEr)sa+2AEA-br)sa+2AH-br)s
a+IKzYAQ-bua€b)s
a+IKzYAQbr)sa+IKzYAQA-br)s
a+IKzYAd-br)sa+IKwgrNgB-bua€€b)sa+IKwgrNgBbr)s
a+IKwgrNgBr)s
a+IKwgrNgBA-brrrrrr
rPr_s    rrzUTF7Test.test_lone_surrogates	sh
#	KMC#&
K  GY!?J
K
K	K
K
Ks#A

A	N)	r(r)r*rWrrrrfrrrrrrs$HE4%
NK<
3KrrceZdZdZdZy)UTF16ExTestcT|jttjddddy)NrrhrT)rrrNutf_16_ex_decoders rrzUTF16ExTest.test_errors s$,f.E.EwPXZ[]abrcL|jttjyr	)r	TypeErrorrNrrs r
test_bad_argszUTF16ExTest.test_bad_args#s)V%<%<=rN)r(r)r*rrrrrrrs
c>rrceZdZdZdZdZy)ReadBufferTestcvddl}|jtj|jdddy)Nrrspam)r)arrayr
rNreadbuffer_encode)rrs  r
test_arrayzReadBufferTest.test_array(s/$$U[[g%>?	
rcN|jtjddy)Nrfrr)r
rNrrs r
test_emptyzReadBufferTest.test_empty/s11"5x@rc|jttj|jttjdyN*)rrrNrrs rrzReadBufferTest.test_bad_args2s0)V%=%=>)V%=%=rBrN)r(r)r*rrrrrrrr&s
ACrrcFeZdZdZej
ZdZdZdZ	dZ
dZy)UTF8SigTest	utf-8-sigc,|jdgdy)Nÿ߿ࠀ￿𐀀)rfrfrfrfrfurÿrÿ߿rrÿ߿ࠀrrÿ߿ࠀ￿rrrrrrs rrzUTF8SigTest.test_partial:s8
	
rc<|jtdddy)Nrrfr
rNrs rtest_bug1601501zUTF8SigTest.test_bug1601501Vs_k:B?rctjd}d}|j|j|j	d|y)Nrr)rNrOr
rPra)rrZrGs   rtest_bomzUTF8SigTest.test_bomZs>5F((57!((;"78!<rcd}tjdz}tjd}dgtt	ddzgdzD]}|tj|}tj}	||j|}n|j}|sn|j|9|j}|j||yNuABC¡∀XYZsABC¡∀XYZrrL)@ri)rNBOM_UTF8rilistrMr{r|StringIOrHrCrr
	r	unistring
bytestringrsizehintistreamostreamrgots	         rtest_stream_bomzUTF8SigTest.test_stream_bom_s(	__'DD
!!+.eArl!3312	-HRZZ
34GkkmG'"<<1D"<<>D

d#""$CS),	-rcd}d}tjd}dgttddzgdzD]}|t	j
|}t	j}	||j|}n|j}|sn|j|9|j}|j||yr)rNrirrMr{r|rrHrCrr
rs	         rtest_stream_barezUTF8SigTest.test_stream_bareus(	2
!!+.eArl!3312	-HRZZ
34GkkmG'"<<1D"<<>D

d#""$CS),	-rN)r(r)r*rWrNrrrrrrrrrrrr6s*H
//C
8@=
-,-rrc$eZdZdZdZdZdZy)EscapeDecodeTestc|jtjdd|jtjtdy)Nrr)r
rN
escape_decode	bytearrayrs rrzEscapeDecodeTest.test_emptys:--c2H=--ik:HErctj}tdD]4}t|g}|dk7s|j	||dz|dzdf6y)Nr\0r)rNrrMrkr
rrPrs   rtest_rawzEscapeDecodeTest.test_rawsU%%s	BAqc
AEz  D!1AHa=A	Brc	tj}t||}|dd|dd|dd|dd|d	d
|dd|d
d|dd|dd|dd|dd|dd
|dd|dd|dd|dd|d d!|d"d|d#d!td$d%D]}t	|g}|d&vr-|jt5|d'|zd'|zddd|jt5|d'|jzd'|jzddd|jt5|d(d(ddd|jt5|d)d)ddd|jt5|d*d*dddtd+d,D]9}|jt5|d-|zt	|d.zgddd;y#1swYxYw#1swY`xYw#1swYxYw#1swYxYw#1swYxYw#1swYxYw)/N[\
][][\"]s["][\']s['][\\]s[\][\a]s[][\b]s[][\t]s[	][\n]s[
][\v]s[][\f]s[][\r]s[
][\7][\78]s[8][\41]s[!][\418]s[!8][\101]s[A][\1010]s[A0][\x41][\x410]a{sabfnrtvxr\8\9\rr\%o)rNrrrMrkassertWarnsDeprecationWarningupperrrPrrYrs     rtest_escapezEscapeDecodeTest.test_escapesb%%tV,
i
h
h
h 
h	"
h	"
h	"
h	"
h	"
h	"
h	"
h	"
i$
i 
j'"
j&!
k7#
j&!
k7#r3	<Aqc
A#%%&890%!)UQY/0!!"45
<eaggi'):;
<
<	<

0
1	"&&!	"


0
1	"&&!	"


0
1	()Y'	(uf%	7A!!"45
7gk5!e)#56
7
7	700
<
<	"	"	"	"	(	(
7
7sH<H),H*4
H7
I
I8IH'	*H4	7IIII$	ctj}|jt|d|jt|d|j	|ddd|j	|ddd|jt|d|jt|d	|j	|d
dd|j	|d
ddy)
Ns\xs[\x]s[\x]\xr)r
rr)[?]?rs\x0s[\x0]s[\x0]\x0)r
)r-r.)rNrrrLr
)rrPs  rrzEscapeDecodeTest.test_errorss%%*ff5*fh7
H5zB
I6E*fg6*fi8h7Di8,GrN)r(r)r*rr
r+rrrrrrsFB%7N	Hrr))u"ليهمابتكلموشعربي؟segbpdaj6bu4bxfgehfvwxn)u他们为什么不说中文sihqwcrb4cv8a8dqg056pqjye)u他們爲什麽不說中文sihqwctvzc91f659drss3x8bo0yb)uPročprostěnemluvíčeskysProprostnemluvesky-uyb24dma41a)u,למההםפשוטלאמדבריםעבריתs4dbcagdahymbxekheh6e0a7fei0b)uZयहलोगहिन्दीक्योंनहींबोलसकतेहैंs,i1baa7eci9glrd9b2ae1bj0hfcgg6iyaf8o0a1dig0cd)u6なぜみんな日本語を話してくれないのかs&n8jok5ay5dzabd5bym9f0cm5685rrjetr6pdxa)uH세계의모든사람들이한국어를이해한다면얼마나좋을까sE989aomsvi5e83db1d2a355cv1e0vak1dwrv93d5xbh15a0dt30a5jpsd879ccm6fea98c)u8почемужеонинеговорятпорусскиs b1abfaaepdrnnbgefbaDotcwatmq2g4l)u*PorquénopuedensimplementehablarenEspañols-PorqunopuedensimplementehablarenEspaol-fmd56a)u-TạisaohọkhôngthểchỉnóitiếngViệts,TisaohkhngthchnitingVit-kjcr8268qyxafd2f1b9g)u3年B組金八先生s3B-ww4c5e180e575a65lsy2b)u"安室奈美恵-with-SUPER-MONKEYSs(-with-SUPER-MONKEYS-pc58ag80a8qai00g7n9n)u'Hello-Another-Way-それぞれの場所s(Hello-Another-Way--fc4qua05auwb3674vfr0b)uひとつ屋根の下2s2-u9tlzr9756bt3uc0v)uMajiでKoiする5秒前sMajiKoi5-783gue6qz075azm5e)uパフィーdeルンバsde-jg4avhby1noc0d)uそのスピードでsd9juau41awczczp)z-> $1.00 <-s-> $1.00 <--rceZdZdZdZdZy)PunycodeTestctD]V\}}|jt|jddj	t|dj	XyNpunycoder)punycode_testcasesr
rNralowerrunipunys   rtest_encodezPunycodeTest.test_encode9sT+		IC
CJJz*G4::<D'"((*

		rctD]g\}}|j||jd|jdjd}|j||jdiyr2)r4r
rPrar6s   rtest_decodezPunycodeTest.test_decodeEs`+	;ICS$++j"9:;;w'..w7DS$++j"9:	;rc2ddtfdg}|D]w\}}}|j||5t|tr#|j	t|j
d|n"|j
|jd||dddyy#1swYxYw)Nxn--w&rh)r=rzxn-)r8errorsr3)rr
isinstance	ExceptionrrPr
)r	testcasesr8r>rbs     rtest_decode_invalidz PunycodeTest.test_decode_invalidKs
,.1(
	'0	P"D&(47
Ph	2%%lDKKVT$$T[[V%DhO	
P
P	P
P
PsAB

B	N)r(r)r*r9r;rBrrrr0r08s
;
Prr0)-)s%foo­͏᠆᠋bar​⁠baz︀︈️s	foobarbaz)sCAFEscafe)sßsss)sİsi̇)sŃͺsń ιNN)sǰ ªsǰ a)sᾷsᾶι)ǰrD)ΐrE)ΰrF)ẖrG)ὖrH) rI)s rI)s N)s rI)s​r)s rI)rJ)s…N)s᠎N)rr)s𝅵N)sN)s󱈴N)s􏈴N)s򏿾N)s􏿿N)sN)s�N)s⿵N)śś)s‎N)s‪N)s󠀁N)s󠁂N)sfoo־barN)s	fooﵐbarN)s	fooﹶbars	foo َbar)sا1N)ا1بrKrC)sX­ßİ℡ǰ ªΰ sxssi̇telǰ aΰ )sXß㌖İ℡⒟㌀s*xssキロメートルi̇tel(d)アパートceZdZdZy)NameprepTestc	Rddlm}ttD]X\}\}}|t	|dd}||jt||3t	|dd}	|j|||Zy#t$r+}tjd|dzt	|fzd}~wwxYw)Nr)namepreprsrz
Test 3.%d: %srL)encodings.idnarOrnameprep_testsrNrrr
r@r
TestFailed)rrOposorigpreppedes      r
test_nameprepzNameprepTest.test_namepreps+$-n$=	P C$|tWo6D!!,$?gw@P$$Xd^W=	P!P!,,_As1v-NOOPsA22	B&;&B!!B&N)r(r)r*rWrrrrMrMsPrrMc6eZdZdZdZdZdZdZdZdZ	y)	
IDNACodecTestc|jtddd|jtddd|jtddd|jtddd	y)
N
python.orgidna
python.orgpython.org.python.org.xn--pythn-mua.orgpythön.orgxn--pythn-mua.org.pythön.org.rrs rtest_builtin_decodez!IDNACodecTest.test_builtin_decodesa]F3\B^V4mD16:OL2F;=MNrc|jdjdd|jdjdd|jdjdd|jdjdd	y)
Nr]r\r[r_r^rar`rcrbr
rars rtest_builtin_encodez!IDNACodecTest.test_builtin_encode
sq,,V4mD--f5~F//79MN)008:OPrc|jtd5djdddd|jtd5djddddy#1swY:xYw#1swYyxYw)Nzway too longsTxn--016caaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaar\ztoo longsNxn--016caaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)assertRaisesRegexrrPrs r test_builtin_decode_length_limitz.IDNACodecTest.test_builtin_decode_length_limitsm

#
#L.
A	3
"**62	3

#
#L*
=	1
 ((0	1	1	3	3	1	1sA"A."A+.A7ctjdtjd}|j	d|j|j	dy)Nr\abcrf)rNrir{r|rHr
)rrrs  rtest_streamzIDNACodecTest.test_streamsC$FV$RZZ%78	q	2&rcL|jdjtjddDdd|jdjtjddDdd|jdjtjd	d
Ddd|jdjtjdd
Dddtjd}|j|jd
d|j|jdd|j|jdd|j|jddd|j
|j|jd
d|j|jdd|j|jdd|j|jdddy)Nrfc34K|]}t|gywr	rkrrts  rrz8IDNACodecTest.test_incremental_decode.<locals>.<genexpr> s&IauaSz&Ir[r\r]c34K|]}t|gywr	rqrrs  rrz8IDNACodecTest.test_incremental_decode.<locals>.<genexpr>$s&JauaSz&Jrsr^r_c34K|]}t|gywr	rqrrs  rrz8IDNACodecTest.test_incremental_decode.<locals>.<genexpr>(&QauaSz&Qrsrbrcc34K|]}t|gywr	rqrrs  rrz8IDNACodecTest.test_incremental_decode.<locals>.<genexpr>,rvrssxn--xams	ple-9ta.ou	äxample.srgrTorgsrg.zorg.)r
rnrNrorOrPrm)rdecoders  rtest_incremental_decodez%IDNACodecTest.test_incremental_decodesGGF%%&I=&I6RS	
	
GGF%%&J>&JFST	
	
GGF%%&Q;P&QSYZ[	
	
GGF%%&Q;P&QSYZ[	

7&..v68
5r:7G.3T2E:


5r:7G/8T2B7rc|jdjtjddd|jdjtjddd|jdjtjddd|jdjtjdddtjd}|j|jd	d|j|jd
d|j|jdd
d|j
|j|jd	d|j|jdd|j|jdd
dy)Nrr]r\r[r_r^rcrbuäxz	ample.orgsxn--xample-9ta.rfTsorgz
ample.org.sxn--xample-9ta.org.)r
rnrN
iterencoder`rarm)rencoders  rtest_incremental_encodez%IDNACodecTest.test_incremental_encode<snHHV&&|V<=	
	
HHV&&}f=>	
	
HHV&&'7@A!	
	
HHV&&'7@A!	

7&..v680#646HID16:

0#657MND137rc	djdddjdddD]F}|jtdjd||jtdjd|Hy)Nr]r\rhr[)rrrr})rarPrr@rr>s  rrzIDNACodecTest.test_errorsXsm2FH-VX.#	6Fi)<)<ffMi$$ff
6	6rN)
r(r)r*rdrgrjrnrzr~rrrrrYrYs'OQ1'
8<886rrYc`eZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZy)CodecsModuleTestc|jtjddd|jttj|jtjdd|jt
tjdd|jtjddd|jtjd	dd
dy)
Nlatin-1äöürlabcrrobjrW[]rr>r)r
rNrPrrrrs rr;zCodecsModuleTest.test_decodees	B'	))V]]3v.6,fmmWgN	
?YO'	)y'(K	rc|jtjddd|jttj|jt
tjdd|jtjdd|jttjdd	|jtjdd
d|jtjdd	d
dy)Nrrrr__spam__rrluÿffrr[ÿ]rrr
)r
rNrarrLookupErrorrrs rr9zCodecsModuleTest.test_encoders~yA(	*)V]]3+v}}eZHu-v6,fmmXwO	
>IN(	*xJ	 rc|jttj|jttjdyr)rrrNregisterrs r
test_registerzCodecsModuleTest.test_registers,)V__5)V__b9rczd}tj}tj||j	t
tj||j||jtj||j	ttj||jy)Nnonexistent_codec_name)rMockrNrrrrassert_called_with
reset_mock
unregisterrassert_not_called)rnamesearch_functions   rtest_unregisterz CodecsModuleTest.test_unregisters~'))+()V]]D9**40""$/*+v}}d;))+rc|jttj|jttjd|jttjdy)Nr )rrrNrrrs rtest_lookupzCodecsModuleTest.test_lookupsB)V]]3+v}}jA+v}}c:rc|jttj|jttjdyNr)rrrN
getencoderrrs rtest_getencoderz CodecsModuleTest.test_getencoder0)V%6%67+v'8'8*Erc|jttj|jttjdyr)rrrN
getdecoderrrs rtest_getdecoderz CodecsModuleTest.test_getdecoderrrc|jttj|jttjdyr)rrrNrirrs rtest_getreaderzCodecsModuleTest.test_getreader0)V%5%56+v'7'7Drc|jttj|jttjdyr)rrrNrrrs rtest_getwriterzCodecsModuleTest.test_getwriterrrctjtj}|jtjtj|	tjtjdt
jd}|j|jdy#tj$r|jdYXwxYw)Ntr_TRztest needs Turkish localeASCIIr)
locale	setlocaleLC_CTYPEr@ErrorskipTestrNrr
r)r	oldlocalerts   rtest_lookup_issue1813z&CodecsModuleTest.test_lookup_issue1813s$$V__5	((&//9E	7V__g6
MM'")	||	7MM56	7s$B**$CCcd}|j|tjtjD]}tt|y)N),rarPr	CodecInfoCodecIncrementalEncoderIncrementalDecoderStreamReaderStreamWriterrrrr`rOrirregister_errorr
strict_errorsreplace_errors
ignore_errorsxmlcharrefreplace_errorsbackslashreplace_errorsnamereplace_errorsrCEncodedFiler|rorBOM_BEBOM_LEr	BOM_UTF16BOM_UTF16_BEBOM_UTF16_LE	BOM_UTF32BOM_UTF32_BEBOM_UTF32_LEBOM32_BEBOM32_LEBOM64_BEBOM64_LEStreamReaderWriter
StreamRecoder)assertCountEqualrN__all__getattr)rapis  rtest_allzCodecsModuleTest.test_alls<
$	
c6>>2>>	!CFC 	!rcn|jtjtjdD]j}|j	|5tjtj|d5}|j|t
jddddddly#1swYxYw#1swYxYw)N)wrrzr+w+rrr)	r@rrArBrrNrCrRr)rrPfiles   r	test_openzCodecsModuleTest.test_opens	(()*:*:;5	GDd#
GKK	 0 0$@
GDH%%dF,E,EF
G
G
G	G
G
G
G
Gs$&B++!BB+B($B++B4	c|jttjdd|jttjdd|jttjdd|jttjdddD]P}|jttjdd||jttjdd|Ry)Nr	undefinedrlrfr)rhrrr)rrrNrarPrs  rtest_undefinedzCodecsModuleTest.test_undefineds,

ukJ,

v{K,

r;G,

sKHI	<Fl

uk6
;l

v{F
<	<rc^tj}tjd|5}|jt5tjtjddddd|jjdddy#1swY1xYw#1swYyxYw)Nz
builtins.openrJzinvalid-encoding)r	mock_openpatchrrrNrCrrBclose
assert_called)rrrs   r'test_file_closes_if_lookup_error_raisedz8CodecsModuleTest.test_file_closes_if_lookup_error_raisedsNN$	
ZZ
3	)t"";/
HI,,d4FG
H
FLL&&(		)	)
H
H	)	)s#B#&B''B#B 	B##B,N)r(r)r*r;r9rrrrrrrrrrrrrrrrrcsM :
,;
FFEE*!.G	<)rrceZdZdZdZy)StreamReaderTestcltjd|_tjd|_y)Nrs한
글)rNrirr{r|r}rs rsetUpzStreamReaderTest.setUps%&&w/jj!>?rc~|j|j}|j|jddgy)Nu한
u글)rr}r
r)rrs  rtest_readlineszStreamReaderTest.test_readliness/KK$X(>?rN)r(r)r*rrrrrrrs@@rrceZdZdZy)EncodedFileTestcTtjd}tj|dd}|j	|jdtj}tj|dd}|j
d|j	|jdy)NrrUrss\
rü)r{r|rNrr
rHrCrrrefs   r
test_basiczEncodedFileTest.test_basics}JJ45


;
8$;<JJL


7I
6
w/rN)r(r)r*rrrrrrs0rr)erbig5	big5hkscscharmapcp037cp1006cp1026cp1125cp1140cp1250cp1251cp1252cp1253cp1254cp1255cp1256cp1257cp1258cp424cp437cp500cp720cp737cp775cp850cp852cp855cp856cp857cp858cp860cp861cp862cp863cp864cp865cp866cp869cp874cp875cp932cp949cp950euc_jis_2004euc_jisx0213euc_jpeuc_krgb18030gb2312gbk	hp_roman8hzr\
iso2022_jpiso2022_jp_1iso2022_jp_2iso2022_jp_2004iso2022_jp_3iso2022_jp_ext
iso2022_kr	iso8859_1
iso8859_10
iso8859_11
iso8859_13
iso8859_14
iso8859_15
iso8859_16	iso8859_2	iso8859_3	iso8859_4	iso8859_5	iso8859_6	iso8859_7	iso8859_8	iso8859_9johabkoi8_rkoi8_tkoi8_ukz1048latin_1mac_cyrillic	mac_greekmac_iceland
mac_latin2	mac_romanmac_turkishpalmosptcp154r3raw_unicode_escape	shift_jisshift_jis_2004shift_jisx0213tis_620unicode_escapeutf_16	utf_16_be	utf_16_leutf_7utf_8mbcs_encodembcs
oem_encodeoemr3ceZdZdZej
ejeduddZ	dZ
dZdZdZ
d	Zy)
BasicUnicodeTestc	d}tD]}tj|j}|j	dr|dz
}n|dk(rd}|dk7r2|j|j
dd|j
ddtj||\}}|j|t|d|ztj||\}}|j||d|z|tvrtd}tj||}d}	|D]R}
|j|
|j}|jt!|t"ut!||	|z
}	Ttd}tj$||}d	}
|	D]0}
|jt#|
g|
|jz
}
2|j|
|d|z|tvs	tj&|d}	|D]}
|	j)|
z
}	|	j)d	d
z
}	tj*|d	}
|	D] }
|
j-t#|
gz
}
"|
j-dd
z
}
|j|
|d|zd	j/tj0tj2|||}|j||d|zd	j/tj0tj2d	||}|j|d	|dvsF	tj&|ddj/fd
|D}	tj*|dd	j/fd|	D}
|j|
|d|zy#t4$rYwxYw#t4$rYwxYw)Nabc123_codecrDrYr-encoding=%rrrfTr\rYrc3@K|]}j|ywr	ra)rrtr}s  rrz/BasicUnicodeTest.test_basics.<locals>.<genexpr>s0Nq1B0Nc3TK|]}jt|g!ywr	rPrk)rrtrys  rrz/BasicUnicodeTest.test_basics.<locals>.<genexpr>s*0H4518uaSz0J0H%()all_unicode_encodingsrNrrendswithr
rrrrbroken_unicode_with_statefulr;rrCrHrUtyperkrir`rarOrPrnror|r)rrGrWrrrFrBrqr
encodedresultrtchunkr
decodedresultrsryr}s               @@rtest_basicszBasicUnicodeTest.test_basicsss-L	CH==*//D  * Y& v~  !1!1#s!;!%c3!794))(3A6IQT3q6=8+CD7F--h7:MUDUA}x'?@;;#J3))(3A6 #
+ALLOFFHEOODK5$8$u+F!U*M	+
#J3))(3A6 "
&3AGGE1#J'!V[[]2M3  =83KL;;1Df::8DFG
%(M;%)::
;!W^^B%==MDf::8DFG$&M*D%qc
)CC
D!W^^C%>>M$$]A%2X%=? WWV%6%6"--a:H&FGF$$VQ
0HI WWV%6%6"--b(;X&GHF$$VR0#33
C"H&">">x"H"R),0NA0N(N
"H&">">x"H"R(*0H9F0H)H
(()6)ACWL	CL#<'s$9OO%	O"!O"%	O21O2Nzneed _testcapi modulecd}tD]7}|tvs
	tj|d}|D]}|j	|z
}|j	ddz
}tj
|d}|D] }|j
t|gz
}"|j
ddz
}|j||d|z|dvs	tj|ddjfd|D}tj
|ddjfd	|D}|j||d|z:y#t$rYwxYw#t$rYWwxYw)
Nr_rrfTrbrcrc3@K|]}j|ywr	re)rrtcencoders  rrz4BasicUnicodeTest.test_basics_capi.<locals>.<genexpr>s0O1C0Orfc3TK|]}jt|g!ywr	rh)rrtcdecoders  rrz4BasicUnicodeTest.test_basics_capi.<locals>.<genexpr>s*0H4519qc
0K0Hri)rjrl	_testcapicodec_incrementalencoderracodec_incrementaldecoderrPrkr
rrn)rrGrWrnrtrprvrts      @@rtest_basics_capiz!BasicUnicodeTest.test_basics_capis
-!	CH;;?(AA(KH
%(M<%);;
<!X__R%>>M(AA(KH$&M*E%s)DD
E!X__S$%??M$$]A%2X%=?#33
C#,#E#EhPX#Y),0OQ0O(O
#,#E#EhPX#Y(*0H9F0H)H
(()6)ACA!	C
#('s#E
E	EE	E#"E#cDddz}tD]}|dk(r	|tvrtj|t	j
|j
|}tdD]6}|jdd|j}|j||8y)Nz%s
%s
)Xabc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123Xdef456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456r\rr)rjrlrNrir{r|rarMseekrHr
)rrGrWrtrs      r	test_seekzBasicUnicodeTest.test_seeks55-
	*H6!77/V%%h/

188H;M0NOF1X
*Aq!{{}  D)	
*
	*rctD]I}tj|}|jt||dvs3|jt|dKy)N)r\r3r)rjrNrrr)rrWrys   rtest_bad_decode_argsz%BasicUnicodeTest.test_bad_decode_argssL-	:H''1Gi133!!)Wb9		:rcptD]-}tj|}|jt|/yr	)rjrNrrr)rrWr}s   rtest_bad_encode_argsz%BasicUnicodeTest.test_bad_encode_argss1-	2H''1Gi1	2rc^ddlm}t|j}|j	||y)Nr)r)	encodingsrrmencoding_tabler
)rr
table_types   r"test_encoding_map_type_initializedz3BasicUnicodeTest.test_encoding_map_type_initializeds%$&//0
Z0rcd}tD]O}|tvs|j|||j||j	|||j|Qy)Nr_)rjrlr^rarb)rrXrWs   rr
z#BasicUnicodeTest.test_decoder_statesW-	RH;;001ahhx>PQ001ahhx>PQ	Rr)r(r)r*rqrcpython_onlyunittestskipIfrwrzrrrrr
rrrr]r]rs]NC`
X__Y$&(?@#CA#CJ
*:2
1Rrr]ceZdZdZdZdZy)CharmapTestc|jtjdddd|jtjdddd|jttjddd|jttjddd|jtjdd	dd
|jtjdd	dd
|jtjdddd|jtjdddd|jtjdd
dd|jtjdd
ddtt
d}|jtj|d
ddt|fy)Nrhrrrm􏿿bcrrmabuab￾ruab�rmrzab\x02rmrrrmrrf)r
rNcharmap_decoderrrkrMrrallbytess  rtest_decode_with_string_mapz'CharmapTest.test_decode_with_string_maps!!/8UC	

	
!!/8^L	

	
,!!?Hd	
	
,!!?Hj	
	
!!/9dC	

	
!!/9jI	

	
!!/3EtL	

	
!!/3EzR	

	
!!/8TB	

	
!!/8ZH	

s$!!(Hb9
X	
rc|jtjddddddd|jtjdddd	d
dd|jtjddddddd
|jtjddddddd|jttjddddd|jttjdddddd|jttjdddddd|jtjdddddd|jtjddddddd|jtjddddddd|jtjdddddd|jtjddddddd|jtjddddddd|jtjdddddd|jtjddddddd|jtjdddddddtt
d}|jtj|didt|f|jtdtjdddd	dd|jtdtjdddd	ddy)NrrhrrrtrrLrrAaBbCc)AaBbCcrm􏿿rrfrrrLu￾rrrrrrz.character mapping must be in range\(0x110000\)riɚ;)
r
rNrrrrkrMrrirrs  rtest_decode_with_int2str_mapz(CharmapTest.test_decode_with_int2str_mapLst!!/8&)cc":
<	
	
!!/8&*t"=
?	
	
!!/8&2ss"C
E	
	
!!/8&)cb"9
;	
	
,!!?H'*s#3	

	
,!!?H'*st#<	
	
,!!?H'*sx#@	

	
!!/9&)c"2
4	
	
!!/9&)cd";
=	
	
!!/9&)ch"?
A	
	
!!/3E&)c"2
4	
	
!!/3E&)cd";
=	
	
!!/3E&)ch"?
A	
	
!!/8&)c"2
4	
	
!!/8&)cd";
=	
	
!!/8&)ch"?
A	
s$!!(Hb9
X	

	
y>!!X34B'?	
	
y>!!X34I'F	
rc
td}td}td}|jtjdd|||dd|jtjddd||dd	|jtjddtj
||dt
tj
d
zdf|jttjddtj
dz||d|jttjdd||d
|jttjdd||dd|jtjdd||d
d|jtjdd||ddd|jtjdd||d
d|jtjdd||ddd|jtjdd||d
d|jtjdd||dddy)NrrrtrrhrrirbcrmrLrirrrrrr)
ordr
rNrr
maxunicodechrrrr)rrrrts    rtest_decode_with_int2int_mapz(CharmapTest.test_decode_with_int2int_mapsVHHH!!/8&'A!"4
6	
	
!!/8&.1";
=	
	
!!/8&)nnq"A
C

 4
'+	
	
)!!?H'*~~'9aA#F	

	
,!!?H'(Q<	

	
,!!?H'(Q6#:	

	
!!/9&'A,
0	
	
!!/9&'A&"9
;	
	
!!/3E&'A,
0	
	
!!/3E&'A&"9
;	
	
!!/8&'A,
0	
	
!!/8&'A&"9
;	
rN)r(r)r*rrrrrrrrs5
nr
hI
rrceZdZdZdZy)WithStmtTestctjd}tj|dd5}|j	|jdddd|j
|jy#1swY%xYw)Nrrrsr)r{r|rNrr
rHrUclosedrs   rtest_encodedfilezWithStmtTest.test_encodedfile
	s_JJ{#


9g
6	1"RWWY0	1!	1	1s!A22A;ctjd}tjd}tj||j
|jd5}|j|jddddy#1swYyxYw)Nrrsrhü)	r{r|rNrrstreamreaderstreamwriterr
rH)rrr8srws    rtest_streamreaderwriterz$WithStmtTest.test_streamreaderwriter	spJJ{#}}W%

&
&q$*;*;'+'8'8(D	1GJSXXZ0	1	1	1s!BB
N)r(r)r*rrrrrrr	s"1rrceZdZdZdZy)	TypesTestc
tjtjtjtjtj
tjtjtjtjtjtjtjg}ttdr|jtj|D]}|j!t"|dy)Nmbcs_decoder)rNrutf_8_decoder^rorrr"r/utf_32_ex_decodelatin_1_decodeascii_decoderhasattrrrrr)rdecodersrys   rtest_decode_unicodezTypesTest.test_decode_unicode	s
######  ######!!!!

6=)OOF../	9Gi%8	9rc|jtjdd|jtjdd|jtjdd|jtjdd|j	t
tjd|jtjddd|jtjddd	|j	t
tjd|jtjddd|jtjddd	y)
Nz\u1234)uሴrs\u1234
\U00110000z
\U00110000rrrr)z(\x5c\x55\x30\x30\x31\x31\x30\x30\x30\x30r)r
rNunicode_escape_decoderaw_unicode_escape_decoderrrs rtest_unicode_escapezTypesTest.test_unicode_escape1	s%	
55i@-P55jA=Q99)DmT99*E}U,f.J.JN[55mYOQ_`55mEWXJ	L	
,f.N.NP^_99-SUcd99-I[\J	LrN)r(r)r*rrrrrrr	s
9*Lrrc>eZdZdZdZdZdZdZdZdZ	dZ
d	Zy)
UnicodeEscapeTestzunicode-escapeNc|jtjdd|jtjddyNrfrrrfr)r
rNunicode_escape_encoderrs rrzUnicodeEscapeTest.test_emptyI	s855b98D55c:GDrctj}tddD]5}|dk7s	|j|t	|t|gdf7y)N \rL)rNrrMr
rrkrrars   rtest_raw_encodez!UnicodeEscapeTest.test_raw_encodeM	sM--r3	BAH}  A%*aA	Brctj}tdD];}|dk7s	|j|t	|gdzt|dzdf=y)Nrrr0r)rNrrMr
rkrr	s   rtest_raw_decodez!UnicodeEscapeTest.test_raw_decodeS	sV--s	OAH}  qc
T(9!:SVc\1<MN	Orctj}t||}|dd|dd|dd|ddtd	D]3}t	|d
vs|t	|d|zj5tdd
D]%}|t	|d|zj'|dd|ddy)N	s\trs\nrs\r\s\\rz	

rrr€\u20ac𝄠
\U0001d120)rNrrrMrrarrarrs    rtest_escape_encodez$UnicodeEscapeTest.test_escape_encodeY	s--tV,
dF
dF
dF
dFr	8A1vX%c!fy1}4467	8sC	4A#a&9q=0023	4
h
#
lN+rc
tj}t||}|dd|dd|dd|dd|d	d
|dd|d
d|dd|dd|dd|dd|dd
|dd|dd|dd|dd|d d!|d"d|d#d!|d$d%|d&d'td(d)D]}t	|g}|d*vr6|jt5|d+|zd,t|zddd|jd-vs\|jt5|d+|jzd,t|d.z
zddd|jt5|d/d0ddd|jt5|d1d2ddd|jt5|d3d4dddtd5d6D]5}|jt5|d7|zt|ddd7y#1swY xYw#1swYvxYw#1swYxYw#1swYxYw#1swYxYw#1swYxYw)8Nrrrz["]rz[']rz[\]rz[]rz[]rz[	]rz[
]rz[]rz[]rz[
]rrz[8]rz[!]rz[!8]rz[A]rz[A0]rrrrrrr r!s	abfnrtuvxrrsUNrr"z\8r#z\9r$u\úrrr%)	rNrrrMrkr'r(rr)r*s     rtest_escape_decodez$UnicodeEscapeTest.test_escape_decodeh	s--tV,
i
h
h
h
h!
h!
h!
h!
h!
h!
h!
h!
i#
i
j&!
j% 
k6"
j% 
k6"
j(#
nl+r3	?Aqc
A$%%&894%!)TCF]34wwy%%%&89?%!'')+TC"I-=>??
	?

0
1	!&% 	!


0
1	!&% 	!


0
1	')X&	'uf%	+A!!"45
+gk3q6*
+
+	+44??	!	!	!	!	'	'
+
+sHI*I 
I
I+.
I7$JI	I	I(+I47JJ	c	.tj}dD]\}}t|D]}|jt|d|zd|zz|jt|d|zd|zzdzd|zd|zzdz|zd|zz}|j||ddt
|f|j||d	d
t
|f|jt|d|j|ddd|j|dd	d
y)N))xrurUrrr[\]]\rrr[�]�rrfrr)rNrrMrrr
rrrPrtrZrYrs      rtest_decode_errorsz$UnicodeEscapeTest.test_decode_errors	s.--3		@DAq1X
@!!"4f"'!)d1f"46!!"4f"(1*tAv"5"<>zDF*V3a7$q&@  h!7$D	9JK  i!8"2CI!>@
@		@	
,fnE98D	:NKrc,|jdgdy)N	

\ÿ￿𐀀) rfrfrfrr	r	
r	

r	

\rrr	

\ÿrrrrr
	

\ÿ￿rrrrrrrrrrrrs rrzUnicodeEscapeTest.test_partial	rrr(r)r*rWrrrrrrrrrrrrrD	s5HEBO
,(+TL %
rrc>eZdZdZdZdZdZdZdZdZ	dZ
d	Zy)
RawUnicodeEscapeTestzraw-unicode-escapeNc|jtjdd|jtjddyr)r
rNraw_unicode_escape_encoderrs rrzRawUnicodeEscapeTest.test_empty	s899"=xH99#>Hrctj}tdD]/}|j|t	|t|gdf1y)NrrL)rNrrMr
rrkrs   rrz$RawUnicodeEscapeTest.test_raw_encode	sB11s	>AVCF^eQCj!_=	>rctj}tdD]5}|j|t	|gdzt|dzdf7y)Nrrrr)rNrrMr
rkrr	s   rrz$RawUnicodeEscapeTest.test_raw_decode	sO11s	KAVE1#J$56Q#q8IJ	Krctj}t||}tdD])}|dvs|dt	|zdt|gz+|dd|ddy)	NruUrrrrrr)rNrrrMrrkrs    rrz'RawUnicodeEscapeTest.test_escape_encode	sf11tV,s	9A~dSVmUUA3Z%78	9	h
#
lN+rctj}t||}tdD])}|dvs|dt	|gzdt|z+|dd|ddy)	Nrrrrrrrr)rNrrrMrkr)rrPrrs    rrz'RawUnicodeEscapeTest.test_escape_decode	sf11tV,s	9A~eeQCj($Q-8	9	j(#
nl+rc	.tj}dD]\}}t|D]}|jt|d|zd|zz|jt|d|zd|zzdzd|zd|zzdz|zd|zz}|j||ddt
|f|j||d	d
t
|f|jt|d|j|ddd|j|dd	d
y)N)rrrrrrrrrrrrrr)rNrrMrrr
rrs      rrz'RawUnicodeEscapeTest.test_decode_errors	s.11(		@DAq1X
@!!"4f"'!)d1f"46!!"4f"(1*tAv"5"<>zDF*V3a7$q&@  h!7$D	9JK  i!8"2CI!>@
@		@	
,fnE98D	:NKrc,|jdgdy)Nr)rrrrrrrrrrrrrrrrrrrrrrrrs rrz!RawUnicodeEscapeTest.test_partial	s.
	
rrrrrrr	s3#HI>
K
,,L 
rrceZdZdZy)EscapeEncodeTestc^gd}|D]E\}}|j|5|jtj||dddG|j	t
tjd|j	t
tjt
dy#1swYxYw)N))rr)foobar)rr)s	spameggs)sspam\x00eggs	)sa'b)sa\'brm)sb\c)sb\\crm)sc
d)sc\ndrm)sd
e)sd\rerm)sfg)sf\x7fgrmrrr)rr
rN
escape_encoderrr)rr`routputs    rrz#EscapeEncodeTest.test_escape_encode
s	
"	ELD&4(
E  !5!5d!;VD
E
E	E	
)V%9%96B)V%9%99W;MN
E
Es&B##B,	N)r(r)r*rrrrrr
sOrrc$eZdZdZdZdZdZy)SurrogateEscapeTestc|jdjddd|jdjddd|jdjddd|jdjdddy)Nfoobarrsr}	foobarsu	r
rPrars r	test_utf8zSurrogateEscapeTest.test_utf82
s--g7HI'	)..w8IJ&	(	
//9JK-	/-44W>OP(	*rc|jdjddd|jdjdddy)Nrrr}rrrs rrzSurrogateEscapeTest.test_ascii>
sD--g7HI'	)..w8IJ&	(rc|jdjddd|jdjdddy)Nsfoobarz
iso-8859-3r}u	foobarrrs rtest_charmapz SurrogateEscapeTest.test_charmapE
sD--l<MN'	)..|=NO&	(rcH|jdjdddy)Nurr}srfrs rtest_latin1zSurrogateEscapeTest.test_latin1L
s$9@@L]^0	2rN)r(r)r*rrrrrrrrr0
s
*((2rrceZdZdZy)BomTestcvd}d}|jtjtj|D]}t	j
tjd|5}|j
||j
||jd|j|j|dz|jd|j|j|dzdddt	j
tjd|5}|j
|d|j|jd|jd|j
||jd|j|j|dddt	j
tjd|5}|jj
|d|j|jjd|jjd|jj
||jd|j|j|dddt	j
tjd|5}|j
||j|j|j
||jd|j|j|dzdddt	j
tjd|5}|jj
||jj|jj|jj
||jd|j|j|dzdddy#1swYxYw#1swYixYw#1swYxYw#1swYxYw#1swYxYw)N
1234567890)r3rUrlrrr+rr?rr)
r@rrArBrNrCrCr~r
rHassertNotEqualtellr)rrr`rWrs     r
test_seek0zBomTest.test_seek0S
s	
	(()*:*:;,	5HY--thG
51

q	  4!84q	  4!84

5Y--thG
11Q ##AFFHa0q	
q	  40

1Y--thG
11tAw'##AHHMMOQ7

a t$q	  40

1Y--thG
51
qvvx 
q	  4!84
5Y--thG
51t$

ahhmmo.t$q	  4!84
5
5O,	5
5
5
1
1
1
1
5
5
5
5sABO:BPB0P,A6P!BP.:P	P	P	!P+	.P8	N)r(r)r*rrrrrrR
s55rr)base64_codecuu_codecquopri_codec	hex_codecbase64base_64uu)quopriquoted_printablequotedprintablehexrot13)rrr r!rot_13
zlib_codecrjzlib	bz2_codecbz2ceZdZdZdZdZdZdZdZdZ	dZ
eje
d	d
ZdZdZd
ZdZy)TransformCodecTestcttd}tD]}|j|5t	j
||\}}|j
|t|t	j||\}}|j
|t||j
||dddy#1swYxYw)Nrr?)	rkrMbytes_transform_encodingsrrNrr
rr)rbinputrWorFrYs      rrqzTransformCodecTest.test_basics
suSz"1	,Hx0
,7F--h7?	D  s6{37F--h7:	D  s1v.  F+

,
,	,
,
,sBCC		c4tD]}|j|5tjd|}tj|tj|}|j}|j|ddddy#1swYxYwNr?r)	r2rrNrarir{r|rHr
rrWsinrsouts     r	test_readzTransformCodecTest.test_read
s1	0Hx0
0mmGX63))(3BJJsOD{{}  w/	
0
0	0
0
0A'BB	c4tD]}|j|5tjd|}tj|tj|}|j}|j|ddddy#1swYxYwr6)	r2rrNrarir{r|rr
r7s     rrz TransformCodecTest.test_readline
s1	0Hx0
0mmGX63))(3BJJsOD(  w/	
0
0	0
0
0r;cd}tD]}|j|5|}t|}tj||}tj||}|j||t|}tj||}|j||tj||}|j||dddy#1swYxYw)Ns12345r?)r2r
memoryviewrNrar
rP)roriginalrWrviewview_encodedview_decodeds       rtest_buffer_api_usagez(TransformCodecTest.test_buffer_api_usage
s 1	5Hx0

5!$'}}T84%}}T8<  t4!$'}}T84  x0%}}T8<  t4

5

5	5

5

5sB'CC	cTd}tD]}|j|5d}|j|}|jt|5}|j|ddd|j
jjdddy#1swY9xYw#1swYxYw)Nzbad input typer?zM{!r} is not a text encoding; use codecs.encode\(\) to handle arbitrary codecs)	r2rformatrirraassertIsNonerO	__cause__)r	bad_inputrWfmtmsgfailures      r/test_text_to_binary_denylists_binary_transformszBTransformCodecTest.test_text_to_binary_denylists_binary_transforms
s$	1	?Hx0
?Kjj*++K=/$$X./!!'"3"3"="=>

?
?	?
//	
?
?s#*BB-BBBB'	cd}|jt|5djddddy#1swYyxYw)NzR^'rot_13' is not a text encoding; use codecs.encode\(\) to handle arbitrary codecszjust an example messager*)rirrarrJs  r-test_text_to_binary_denylists_text_transformsz@TransformCodecTest.test_text_to_binary_denylists_text_transforms
s=C

#
#K
5	7%,,X6	7	7	7s4=cd}tD]}|j|5tj||}d}|j	|}|jt|5|j|ddd|jt|5t|j|ddddddy#1swYMxYw#1swY xYw#1swYxYw)Ns6encode first to ensure we meet any format restrictionsr?zM{!r} is not a text encoding; use codecs.decode\(\) to handle arbitrary codecs)	r2rrNrarErirrPr)rrrWencoded_datarIrJs      r/test_binary_to_text_denylists_binary_transformszBTransformCodecTest.test_binary_to_text_denylists_binary_transforms
sI1		=Hx0
=%}}T8<Kjj*++K=2 ''12++K==l+228<=
=
=		=22==
=
=s<ACB<0CC)C<CCC
CC	c<dtdfD]t}|j|5d}|jt|5}|j	dddd|jjjdddvy#1swY9xYw#1swYxYw)Ns	immutablesmutable)rHzR^'rot_13' is not a text encoding; use codecs.decode\(\) to handle arbitrary codecsr*)rrrirrPrFrOrG)rrHrJrKs    r-test_binary_to_text_denylists_text_transformsz@TransformCodecTest.test_binary_to_text_denylists_text_transforms
s&	*(=>	?I	2
?K++K=/$$X./!!'"3"3"="=>
?
?	?//
?
?s"BB-BBBB	zRequires zlib supportcd}|jtj5}tjddddd|j|jjdy#1swY3xYw)Nz'decoding with 'zlib_codec' codec failedhellor+r)rr,errorrNrPr
rO	__notes__)rrJrKs   rtest_custom_zlib_error_is_notedz2TransformCodecTest.test_custom_zlib_error_is_notedsa8


tzz
*	2gMM(L1	2g//99!<=	2	2A++A4cddl}d}|j|j5}tjddddd|j|jjdy#1swY3xYw)Nrz&decoding with 'hex_codec' codec failedrVr!)binasciirrrNrPr
rOrX)rr\rJrKs    rtest_custom_hex_error_is_notedz1TransformCodecTest.test_custom_hex_error_is_noted
sb6


x~~
.	1'MM(K0	1g//99!<=	1	1rZc8tjD]w\}}tj|j}|D]N}|j|5tj|}|j
|j|dddPyy#1swY]xYw)N)alias)transform_aliasesitemsrNrrrr
)r
codec_namealiases
expected_namer_r8s      rtest_aliaseszTransformCodecTest.test_aliasess#4#:#:#<	?J"MM*5::M 
?\\\.?!==/D$$TYY
>??
?	???s2BBctjdd}|j|dd}|jtj|d|y)Nsspace tab	eol 
zquopri-codecsspace=20tab=09eol=20
sspace tab eol
)rNrar
rP)rrv	unescapeds   rtest_quopri_statelessz(TransformCodecTest.test_quopri_statelesssD-- 4nE";<&	y.A9MrcP|jttjddy)Nrzuu-codec)rrLrNrPrs rtest_uu_invalidz"TransformCodecTest.test_uu_invalid&s*fmmS*ErN)r(r)r*rqr:rrCrLrOrRrTr
skipUnlessr,rYr]rerhrjrrrr0r0
sd	,005$
?7
=?X67>8>>?NFrr0c,tj|Sr	)_TEST_CODECSget)rbs r_get_test_codecro2sJ''rceZdZdZdZdZejdZdZ	e
fdZdZdZ
d	Zd
ZdZdZd
ZdZdZdZdZy)ExceptionNotesTestcd|_tjt|j	tj
tt|_y)Nexception_notes_test)rbrNrror@rRuntimeErrorobj_to_raisers rrzExceptionNotesTest.setUp8s30())?;)rctj|jdtjj|jdyr	)rmpoprbr_cachers rtearDownzExceptionNotesTest.tearDownFs0$/T__d3rcntj|||j}|t|j<y)N)r)rNrrbrm)rrarP
codec_infos    r	set_codeczExceptionNotesTest.set_codecKs+%%ff+/??<
(2T__%rc#2Kdj||j}|j|5}|ddd|j|jj
d|jj
j
y#1swYWxYww)Nz{} with {!r} codec failedr)rErbrrMrOrXclear)r	operationexc_typerJfull_msgcaughts      rassertNotedzExceptionNotesTest.assertNotedPs/66T__.


x
(	FL	

h 0 0 : :1 =>""((*		s.BBABBBc|jr	)ru)rargskwdss   r	raise_objzExceptionNotesTest.raise_objYsrc||_|j|j|j|jd||5dj	|j
ddd|jd||5t
jd|j
ddd|jd||5dj|j
ddd|jd||5t
jd|j
dddy#1swYxYw#1swYxYw#1swY^xYw#1swYyxYw)NrW	str_inputdecodingbytes input)rur|rrrarbrNrP)rrurJrs    r
check_notezExceptionNotesTest.check_note]s	(t~~t~~6


j(C
8	0t/	0


j(C
8	8MM+t7	8


j(C
8	3!!$//2	3


j(C
8	;MM.$//:	;	;
	0	0	8	8	3	3	;	;s0D8!D!4D-+!D9D!D*-D69Ec0|jtdy)Nrfrrtrs rtest_raise_by_typez%ExceptionNotesTest.test_raise_by_typeisb)rc>d}|jt||y)NThis should be notedrrNs  rtest_raise_by_valuez&ExceptionNotesTest.test_raise_by_valuels$S)3/rcXd}Gddt}|j||||y)NrceZdZdZy)TExceptionNotesTest.test_raise_grandchild_subclass_exact_size.<locals>.MyRuntimeErrorrN)r(r)r*	__slots__rrrMyRuntimeErrorrrsIrrrtrrrJrs   r)test_raise_grandchild_subclass_exact_sizez<ExceptionNotesTest.test_raise_grandchild_subclass_exact_sizeps($	\	s+S.ArcXd}Gddt}|j||||y)NrceZdZy)SExceptionNotesTest.test_raise_subclass_with_weakref_support.<locals>.MyRuntimeErrorN)r(r)r*rrrrrxsrrrrs   r(test_raise_subclass_with_weakref_supportz;ExceptionNotesTest.test_raise_subclass_with_weakref_supportvs($	\	s+S.ArcFGddt}|j|dy)NceZdZdZy)9ExceptionNotesTest.test_init_override.<locals>.CustomInitcyr	rrs rr@zBExceptionNotesTest.test_init_override.<locals>.CustomInit.__init__~srN)r(r)r*r@rrr
CustomInitr}s
rrrfr)rrs  rtest_init_overridez%ExceptionNotesTest.test_init_override|s			

B'rcFGddt}|j|dy)NceZdZfdZxZS)7ExceptionNotesTest.test_new_override.<locals>.CustomNewc"t||Sr	)r__new__)clsrs rrz?ExceptionNotesTest.test_new_override.<locals>.CustomNew.__new__sws++r)r(r)r*rrrs@r	CustomNewrs

,
,rrrfr)rrs  rtest_new_overridez$ExceptionNotesTest.test_new_overrides	,	,	
	2&rcnd}t|}d|_|j|dj|y)NrrLz^{}$)rtattrrrE)rrJrs   rtest_instance_attributez*ExceptionNotesTest.test_instance_attributes/$3V]]3/0rc:|jtddy)NrL1rrs rtest_non_str_argz#ExceptionNotesTest.test_non_str_argsQ-rcBd}|jtddd|y)Nz^\('a', 'b', 'c'\)$rrrtr)rmsg_res  rtest_multiple_argsz%ExceptionNotesTest.test_multiple_argss'S#s3V<rc~dj|j}|jt|5dj	|jddd|jt|5tjd|jddd|jt|5dj
|jddd|jt|5tjd|jdddy#1swYxYw#1swYxYw#1swYaxYw#1swYyxYw)Nz^unknown encoding: {}$z	str inputr)rErbrirrarNrPrNs  rtest_codec_lookup_failurez,ExceptionNotesTest.test_codec_lookup_failures&--doo>

#
#K
5	0t/	0

#
#K
5	8MM+t7	8

#
#K
5	3!!$//2	3

#
#K
5	;MM.$//:	;	;
	0	0	8	8	3	3	;	;s/D,!D+D'%!D3DD$'D03D<cd}d}|j||tjd|j}|j	|dtj
d|j}|j	|dd}|j
|j}|jt|5dj|jdddd}|j
|j}|jt|5dj|jdddy#1swYaxYw#1swYyxYw)	Ncy)N)
not bytes!rrrrs  r
encode_to_strzPExceptionNotesTest.test_unflagged_non_text_codec_handling.<locals>.encode_to_strs"rcy)N)not str!rrrs  rdecode_to_byteszRExceptionNotesTest.test_unflagged_non_text_codec_handling.<locals>.decode_to_bytess!rrrzd^{!r} encoder returned 'str' instead of 'bytes'; use codecs.encode\(\) to encode to arbitrary types$rzd^{!r} decoder returned 'bytes' instead of 'str'; use codecs.decode\(\) to decode to arbitrary types$r)	r|rNrarbr
rPrErir)rrrrvdecodedrIrJs       r&test_unflagged_non_text_codec_handlingz9ExceptionNotesTest.test_unflagged_non_text_codec_handlings		#	"}o6--doo6,/--doo6+.Fjj)

#
#Is
3	0t/	0Fjj)

#
#Is
3	3!!$//2	3	3	0	0
	3	3s0D,D8,D58EN)r(r)r*rryr|
contextlibcontextmanagerrrrtrrrrrrrrrrrrrrrrqrq6st)4
3
++ 6B
;*0BB('1.=
	;3rrqwin32z"code pages are specific to WindowsceZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZej d
dddZej d
dddZy)CodePageTestc4|jttjdd|jttjdd|jt
tjdd|jt
tjddy)Nrrar!)rrLrNcode_page_encodecode_page_decodeOSErrorrs rtest_invalid_code_pagez#CodePageTest.test_invalid_code_pagesj*f&=&=r3G*f&=&=r4H'6#:#:CE'6#:#:CFrc	
|jtdtjdd|jtdtj
dddd|jtdtj
|jdddy)	NrÿsrhTCP_UTF8r)rirrNrrrrrs rtest_code_page_namez CodePageTest.test_code_page_namesp17##S&	217##S+x	G19##T\\7Hd	Lrc|D]\}}}|t	tj|||d}|j	d||d|d|d	|dd
|	|j|dd|j
|dt|}|jttj|||dy#t$r'}|jd|d|d|d|Yd}~d}~wwxYw)NTzUnable to decode z	 from "cp" with errors=: rz.decode("cp", )= != rL)	rNrrfailr
assertGreaterEqualassertLessEqualrr)rr5r`rar>rbrerrs        rcheck_decodezCodePageTest.check_decodes%*	D!C#H$55b#vtLG  XB
H>?''
A6$$WQZS:!!"4++RfdD	D*HII14b&#GHHHsB++	C4CCc|D]\}}}|^	tj|||}|j	d||d|d|d|dd	|	|j	|d
t|g|j
ttj|||y#t$r'}|jd|d|d|d|Yd}~d}~wwxYw)NzUnable to encode z to "cprrrz.encode("cprrrrL)rNrrrr
rr)rr5r`textr>rbrvrs        rcheck_encodezCodePageTest.check_encodes&+
	?"D&(#I$55b$GG  XRX?@  SY7!!"4++Rv?
	?*III15r63HIIIsB	CB??CcL|jdd|jddy)Nr)rrhrl)d騾rh)rrhN)rrr
)rrs[y])u[€]rs[?])rrs[\xff])rrs)[\N{LATIN SMALL LETTER Y WITH DIAERESIS}])rrs[&#255;])urhN)[]r}r)rrN)rlrhr)rrhr)rrhN)rrr)rru[�])rrz[\xff])rr}r)rrN)abcrhN)rrzabc)rru�abc)rrz\x81abcrrrs r
test_cp932zCodePageTest.test_cp932s.# 
	 	
# 
	rcL|jdd|jddy)Ni)r)é€rh)rrhr)ŁrhN)rrr)rrL)r})rrN)r)rrhr)rrhrrrs rtest_cp1252zCodePageTest.test_cp1252s.$
!

		
$!
	rcPd}|j|d|j|dy)N)r)rrh+AOkgrA-)rrh+2//f/w-)rrh+3IA-)rrh+//0-)r)rrhr)rrhr)rrhr)rrhr)s[+/]rhr)rrhrrrr5s  rtest_cp_utf7zCodePageTest.test_cp_utf7's3
"
		
"	
		rc|jdd|j|jd|j|jdy)Nr))r騾)rru�騾))􏿿rr)rru�􏿿))	[􏿿]rs[􏿿])rrs[􏿿?])rrrrs rtest_multibyte_encodingz$CodePageTest.test_multibyte_encoding;sM# 
		
$,,)
		
$,,)
	rctjrtjj	dddddddgtdd	d
D]W}t
|r+|jtj|ddd
|9tjsJtd|Y|jtjdddy)Nri,i-i.i1i3i5iirrlrr5z  skipping cp=r)u	rm)rverboserstdoutrCrMr9r
rNrprintrs  rtest_code_page_decode_flagsz(CodePageTest.test_code_page_decode_flagsIs??JJT"%ue2%)2+02
	1B$B'  !8!8V!DjTVWYVZR[\??N2$/0
	1	
00V<2	4rcTtjdddd}|j|dtjdddd}|j|dtjdddd}|j|d	tjdd
dd}|j|dy)NrrhFrs)rrs)u騾騾rrlr)rNrr
)rrs  rtest_incrementalzCodePageTest.test_incremental\s))#w%H'*))#*98*/1	
-0))#*=x*/1	
"56))#*0(*/1	
*-rc.d}d|}tjd|5	tj|}|j	|j
dtj|	dddy#tj|wxYw#1swYyxYw)Nir5z_winapi.GetACP)return_valuerY)rrrNrr
rr)r	code_pagercodecs    rtest_mbcs_aliaszCodePageTest.test_mbcs_aliasos	I;
ZZ(y
A	(
(

d+  V4!!$'	(	(
!!$'	(	(s"B1A1B1BBBlF)rFmemusedry_runcld|dzdz
zdz}|jt||dztjd|dd}|j|dt|~|jt|d	|d|j|d	dd
d|j|d	ddd
y)Ns01234567r.rLs
rrr}Trr
0123456701iu(6701234567r
rrNrrrFrvrs    rtest_large_inputzCodePageTest.test_large_input{s
47A+.>?WtAv.))#w8I4PS\2WQZ'!*5CR,7CD):	;rrc`d|dzz}|jt||dzdztjd|dd}|j|dt|~|jt|d||j|dddd	|j|dd
ddy)Ns
0123456턀r.rrrTrLru0123456턀01iu56턀0123456턀rrs    rtest_large_utf8_inputz"CodePageTest.test_large_utf8_inputs
*T1W5Wtqy2~6))%(DIS\2WQZ$/CR*;<CD)+BCrN)r(r)r*rrrrrrrrrrrrr
bigmemtestrrrrrrrsGGLD$? B$(4&.&
(WU1e<;=;"WU1e<D=Drrc*eZdZdZdZdZdZdZy)	ASCIITestcF|jdjddy)Nr_rsabc123rfrs rr9zASCIITest.test_encodes19=rcdD]E\}}}|j|||5|j|jd||dddGy#1swYRxYw)N))	[€ÿ€]rr
)rrs[???])rrs[&#128;&#255;&#8364;])u
[€ÿ€򫳞]rs[\x80\xff\u20ac\U000abcde]r~r}r|rrrr
rars    rtest_encode_errorzASCIITest.test_encode_errorsl.
	+)D-4}'/1
+  Wm!D!)+
+
+	+
+
+#AA	c||jt5djdddddy#1swYyxYw)Nuÿrr}rrrars r!test_encode_surrogateescape_errorz+ASCIITest.test_encode_surrogateescape_errors7


1
2	<):;	<	<	<2;cF|jdjddy)Nrlrr)r
rPrs rr;zASCIITest.test_decodesw/7rcdD]E\}}}|j|||5|j|jd||dddGy#1swYRxYw)Nr{rrrrs    rrzASCIITest.test_decode_errorsl.
		+)D-4}'/1
+  Wm!D!)+
+
+
		+
+
+r N)r(r)r*r9rr#r;rrrrrrs>+<
8
+rrc$eZdZdZdZdZdZy)
Latin1TestcdD]B\}}|j||5|j|jd|dddDy#1swYOxYw)N))rrl)u€éÿsrrblatin1rrrrbs   rr9zLatin1Test.test_encodec
	BND(4(;
B  X!6A
B
B		B
B
B"A		A	cdD]E\}}}|j|||5|j|jd||dddGy#1swYRxYw)N))[€]rr
)r0rs[??])u	[€򫳞]rs[\u20ac\U000abcde])r0rs[&#8364;&#56448;]rrr+rrs    rtest_encode_errorszLatin1Test.test_encode_errorssl.
	+)D-4}'/1
+  X}!E!)+
+
+	+
+
+r c||jt5djdddddy#1swYyxYw)Nu€r+r}r"rs rr#z,Latin1Test.test_encode_surrogateescape_errors7


1
2	?!!(,=>	?	?	?r$cdD]B\}}|j||5|j|jd|dddDy#1swYOxYw)N))rlr)r|u[€ÿ]r*r+rr,s   rr;zLatin1Test.test_decoder-r.N)r(r)r*r9r1r#r;rrrr(r(sB+?
Brr(c$eZdZdZdZdZdZy)StreamRecoderTestcvtj}tjd}tj||j
|jtjjtjj}|jddg|j|jdy)Nrrbsab)r{r|rNrrrarPrrrr
writelinesr
r)rbiorsrs    rtest_writelinesz!StreamRecoderTest.test_writelinessyjjl

g&

!
!#u||U\\"+//">">	@\@\^


tTl#/rctj}tjd}tj||j
|jtjjtjj}d}|j|jd|j|j|jdy)Nr+uàñérs)r{r|rNrrrarPrrWrrrCr
r)rr9rr:rs     r
test_writezStreamRecoderTest.test_writesjjl

h'

!
!#u||U\\"+//">">	@\@\^
X&'W)=>rctjdjd}tj|dd}|j|j
d|jd|j|j
d|j|j
d|j|j
d|j|j
dy)	Nzline1
line2
line3
rUrssline1
rsline2
sline3
r)r{r|rarNrr
rr~rr9r:s   rtest_seeking_readz#StreamRecoderTest.test_seeking_readsjj077DE


Wk
:
3


3
3
3,rctjdjd}tj|dd}|jd|j
d|j|jd|jd|j|jd|j|jd	|j|jdy)
Nz
123456789
rUrsrs
abc
s789
rs1
sabc
)	r{r|rarNrr~rCr
rr?s   rtest_seeking_writez$StreamRecoderTest.test_seeking_write
sjj--k:;


Wk
:	

1

/11rN)r(r)r*r;r=r@rBrrrr5r5s0	?	-2rr5zneed _testinternalcapi moduleceZdZ	ejZdZdZdZddZ	dZ
dZdZdZ
d	Zdd
ZdZdZd
ZdZdZy)LocaleCodecTest)ruulatin1:§éuu255:ÿu
UCS:é€􏿿usurrogates:)s
blatin1:sb255:uc0tj|d|SrE)_testinternalcapiEncodeLocaleEx)rrr>s   rrazLocaleCodecTest.encode#
s //a@@rc	|jD]^}|j|5	|j|j|}|j||}|j	||ddd`y#t
$rg|j
t5}|j||dddn#1swYnxYwtj}|j|dYzwxYw#1swYxYw)N)rz!encode error: pos=[0-9]+, reason=)STRINGSrraENCODINGr
rrrtrNrOassertRegex)rr>rrbrvrQerrmsgs       rcheck_encode_stringsz$LocaleCodecTest.check_encode_strings&
sLL	8D4(

8	8#{{4==&AH#kk$7G$$Wh7

8

8	8*S**<82BD&1222 .F$$V-QR	S

8

8sFC"A/$C"/C
B)	 	C)B2
..CC"CC""C+	c&|jdyNrhrMrs rtest_encode_strictz"LocaleCodecTest.test_encode_strict4
!!(+rc&|jdyNr}rPrs rtest_encode_surrogateescapez+LocaleCodecTest.test_encode_surrogateescape7
!!"34rc	|jdd|jdy#t$r8}t|dk(r|j|jdnYd}~Nd}~wwxYw)Nrfrunsupported error handlerz4 encoder doesn't support surrogatepass error handler)rarLrNrrJrMrrs  rtest_encode_surrogatepassz)LocaleCodecTest.test_encode_surrogatepass:
sm	KKO,	
!!/2	3x66

 12<=>>	&	A'.A""A'c|jt5}|jddddd|jt	j
dy#1swY/xYw)NrfrrX)rrLrar
rNrOrrQs  r%test_encode_unsupported_error_handlerz5LocaleCodecTest.test_encode_unsupported_error_handlerF
sP


z
*	0bKK./	0R\\*,GH	0	0AA c0tj|d|SrE)rFDecodeLocaleEx)rrvr>s   rrPzLocaleCodecTest.decodeK
s //FCCrc	P|jdk(}|rd}nd}t|j}|jD]j}	|j	|j|}||vr|j||s8|j	|jd}||k7sZ|j|l|D]^}|j|5	|j|j|}|j||}	|j|	|ddd`y#t$rd}YwxYw#t$rv|jt5}
|j||dddn#1swYnxYwt
j}|j|j!d|YwxYw#1swYxYw)Nrsr}rhr)rvzdecode error: )rJr
BYTES_STRINGSrIrarrrrPr
rrrtrNrOrU
startswith)rr>is_utf8
encode_errorsstringsrrvencoded2rbrrQrLs            rcheck_decode_stringsz$LocaleCodecTest.check_decode_stringsN
s==G+-M$Mt))*LL	-D
++dmm]C')NN7+;;t}}oFw&NN8,	-	8Gg.

8	8&~~dmmVDH#kk'6:G$$Wh7

8

8	8&

*Q**<85BGV4555 .FOOF$5$56F$GP	Q

8

8sY1D	<F>D$F	DDF8E		FE
=FFFFF%	c&|jdyrOrirs rtest_decode_strictz"LocaleCodecTest.test_decode_strictp
rRrc&|jdyrTrkrs rtest_decode_surrogateescapez+LocaleCodecTest.test_decode_surrogateescapes
rVrc	|jdd|jdy#t$r8}t|dk(r|j|jdnYd}~Nd}~wwxYw)NrrrXz4 decoder doesn't support surrogatepass error handler)rPrLrNrrJrirYs  rtest_decode_surrogatepassz)LocaleCodecTest.test_decode_surrogatepassv
sm	KK_-	
!!/2	3x66

 12<=>>	r[c|jt5}|jddddd|jt	j
dy#1swY/xYw)NrrrX)rrLrPr
rNrOr]s  r%test_decode_unsupported_error_handlerz5LocaleCodecTest.test_decode_unsupported_error_handler
sP


z
*	1bKK/0	1R\\*,GH	1	1r_Nrg)r(r)r*rgetfilesystemencodingrJrIrc
SURROGATESrarMrQrUrZr^rPrirlrnrprrrrrrDrD
sm)s((*H*G8MJA8,5
3I
D 8D,5
3IrrDc&eZdZ	dZdZdZdZy)	Rot13TestcTtjdd}|j|dy)NzCaesar liked ciphersrot-13zPnrfne yvxrq pvcuref)rNrar
)r
ciphertexts  rr9zRot13Test.test_encode
s$]]#98D
%;<rcTtjdd}|j|dy)Nz
Rg gh, Oehgr?rxz
Et tu, Brute?)rNrPr
)r	plaintexts  rr;zRot13Test.test_decode
s"MM/8<	O4rc~tjd}|jd}|j|dy)NrxzABBA nag Cheryl BakerzNOON ant Purely Onxre)rNr`rar
)rr}rys   rr~z!Rot13Test.test_incremental_encode
s78&..x8:^^$;<
%<=rc~tjd}|jd}|j|dy)Nrxzterra Ares envy thazgreen Nerf rail gun)rNrOrPr
)rryr{s   rrzz!Rot13Test.test_incremental_decode
s78&..x8:NN#89	$9:rN)r(r)r*r9r;r~rzrrrrvrv
s,=5>
;rrvceZdZ	dZy)
Rot13UtilTestctjd}tj}tjj	|||jd|j
}|j|dy)Nz)Gb or, be abg gb or, gung vf gur dhrfgvbarz)To be, or not to be, that is the question)r{rrr*r)r~rHr
)rinfileoutfile
plain_texts    rtest_rot13_funczRot13UtilTest.test_rot13_func
s\HI++-vw/Q\\^
7	9rN)r(r)r*rrrrrr
s9rrceZdZ	dZdZy)CodecNameNormalizationTestcjddfd}tj||jtj||j	tj
d|j	tj
d|j	tj
d|j	tj
d|j	tj
d|j	tj
d	|j	tj
d
|j	tj
d|j	tj
d|j	tj
d
y)N)rLrrmr)NNNNc|dk(rSS)Naaa_8r)rWFOUND	NOT_FOUNDs rrzFCodecNameNormalizationTest.test_codecs_lookup.<locals>.search_function
s7"  rrzAAA-8zAAA---8zAAA   8u
aaaé€-8zAAA.8zAAA...8zBBB-8zBBB.8uaé€-8)rNrr@rr
r)rrrrs  @@rtest_codecs_lookupz-CodecNameNormalizationTest.test_codecs_lookup
s/,		!	())?;

g 67

g 67

i 89

i 89

.? @AFMM'$:;FMM)$<=FMM'$:;FMM'$:;FMM/$BCrcDtj}|j|dd|j|dd|j|dd|j|dd|j|dd|j|ddy)NrWuutfé€􏿿-8zutf   8zUTF 8UTF_8zutf.8zutf...8)rnormalize_encodingr
)r	normalizes  r!test_encodings_normalize_encodingz<CodecNameNormalizationTest.test_encodings_normalize_encoding
s00	7+W5#>?I9-w7	
7+W57+W59-y9rN)r(r)r*rrrrrrr
s'D,
:rr__main__)TrNrr{rrrrrtestrtest.supportrrwImportErrorrFr2sizeofc_wcharSIZEOF_WCHAR_Trr9rr;rJrdTestCaserrr*r2rTrkrrrrrrrr4rYrrreprr0rQrMrYrrrrjrrrlr]rrrrrrrrr2r`r,r.r0rmrorqrkplatformrrr(r5rrDrvrrr(mainrrr<module>rsp
	

"3
#V]]6>>2N$(F*--DQ=&Q=h
]>(++]>@+>(H--+>\+>(H--+>\`-(++`-F*'(H--*'X*'(H--*'X[Hx**[H|CKx**CKL>(##>CX&&C S-(H--S-l<Hx((<H@eN
A
1vqy
d1g
P8$$PBVrP8$$P(Z6H%%Z6z~)x((~)B@x((@
0h''
0fP6=!  (
6<   ' 
_Rx((*A_RDu
(##u
p18$$1&L!!&LRC
("3"3C
JP
8X%6%6P
fOx((O(2(++2D65h65ry)Ei6$$\2',fol#-$$[1&+Wk"~F**~FL(E3**E3RS\\W,9;XD8$$XD;XDv$+!!$+N"B"""BJ+2))+2\"d*,KLnIh''nIMnIb;!!;*
9H%%
9 ":!2!2":JzHMMOGnI

FNHTD		sWRR+R9;S	SR('R(+R65R69	SS	SSS S