ÿØÿà JFIF    ÿÛ „ !.%+&8&+/1555$;@;4?.451 4,$,44444444444414444444444444444444444444444444444444ÿÀ  á á" ÿÄ     ÿÄ ?    !1AQaq"2‘¡±ÁðBRbrÑá#‚’¢²3S CñÿÄ   ÿÄ !    !1QAa‘2ÿÚ   ? 5˜Z¯V¦cø)›t/? z¨±>Õ5€¶‹Á¤·¼z¼Ü¬+ñ®v¤¨_ˆR­BFn©—˜ý®ç̝P8gýt·ÉSTŦˆìät?þé¼íìN/Þa)ì–í6ô… Ï¿øÃj´¿KÇü]ÿ ªô¹-eKànëÕHTx}ýSÜ›ÿ ”7Ø×&µ<¦  ¥ÑO¶[Ù¯ä¨ÞÃÿ PZ-¬;#õ|•oaÿ ©CìÞz3˜öː/¤­ñTûIØ}š^ mÓ%ªxˆ¥ÉŸu=Z+ISe¿45™¼u;ú&WØ÷€æßQ™®{|íx*TC“#ZŠìZ§²‹ 6pv…³¿¡äª*áZÐ%ÒOáˆo"x«OHk w±æ+¬V(kMúŸ5Vö«$ ÁrÏbàb57/luR ¸ÑÛj Òµì`Мq­û žICÀÊ•©4€Âcà¨Ï€O´<èÐ:›ù(Ë^L8þ‘ÍÌ#¸Ð_Ì©ÙK(Öz 4¬û+¸;ü’V’84‘¬ÃŽ:[â‡ÔÌáõp¢~§ªlæ£ö{®G>J¼"°‡7¯ÆÉèßû ‹É‹§ÁòÃýâßî ^ƾÙõ‹×óH#«LP½ïX=xÑÍ$|W?•~• îëÔ©ª‹ {ÝT…Kÿ ”hûâá)J*ö˜–ÔU;iÇ€/ ÆþjóZ\ýwØ=Ìm ºèËL9 ýèÆð/¨’¥öo=nË.%Îì ŽÕ¯È|{Oj²ƒE6e/ßdÄõ²Ìâ1O®ò×TsəԸhOMýíMˆ¿¼H˜l²,7Â¥#MF/Úf°Ö½± ¸–dr‹NýÊ íjqx{œÉ ä-È ¦ øÄër¨q°ð †nцýÑÄÆ’mä…n<0È™;ÁÝá¯ÁZƒ7FÀmì­ É&9ˆîéi¶ùN§Y• ÃZãAâ?•‡©‰ , ó¾IŸŠc1 4â&y­&pŠ­6;M À 0¹qç»p.á …ŸÅáK@%6·y6ƒ‰3?”úºŽ‰éX5ªPT §µ!=Mž«Ú½‹ÅgÂSâÉaþÓoö–¯ÁÔìR>5éÿ üs¶ÆUcÌ kÇR ]ÿ ù¬¼«VŽ;Â|‡~¢¦”ÏŰæ {L™Õ°Óv¹ò¸írޡעCÃ!íVÕ {¶»sŒNPg/ "uÕbkm²“$ďå¿é¹§°½æz¯6 †s¿!s–wÚÝ“™Œ °.ûj>·+™Òa…©Œ&rÝÎtÛë긪Ît’LAVp%c Úý[ÄzJ¾ÇàXXç@˜ó<êL]·T˜¾¥1Ó©V‡g´æ½¦Ý@¹óø!_@´ÞâSÁ —S3™•& ]@JHÚý©ZŽ €×æÔr»Áf!‡yÞ4Mv*èÓã_{‘åóUuљØ«Oïé*®EvÑ Œ÷‡U \"㪒ÍK+À 4“M¡ï:0¥5í!'<@î´”>Ç»&Z–ïCCV˜Ì5Šo&îhè.žû |ÓK©h$s6KìŒëã)¹hI¦GïOåóI;ììü#É$Š0…Ææ¥TØ.5­¾gn´ “ÂÖ\:hœ89G)J@„}œ:’Ò{/Š"¦_Æ×7Æ3VÇŠÊa]ÚŒÙ€Ä–=®uÁßâACZƒ§§£ Qnâ:«,×{tyø¬iÛcœÜÄ€H½ÄÍCk´÷šß .W'b¤Íåh]÷€=,Žv×cÚEÚHXJX¶îo¨FÒtèöŸ>ªª6[J®Fµ£sGÁeqõfe\íjÒÐïÄÐGˆe1Ø‹.Ø”‘Ëuø Y­ˆÜ ŽG|zùªüMpDnQWÄ”%JŠ™)â*p@Örš«ÕT2Ð%ˆG#ª„ ·¤!°ŸOTÂT¸aÚ%4&h™LµšØüÐ.F¿²ÐÞ_Ç‚¾ÅÃaÜ÷09Æ q€öy˜v‡85õN÷]¬äѼóS{°_MެúÔ#°Ç¸0åÞè2ëôPcvÆw9®ií1Ä8F™˜à‰´+‰Ik1òÝ7“Ñ×ÒsÝ\x‚h`ÞÑ`ó"|µEcý£n˜h`}GÞ !±ù²Ápü²ß6 0ïi󜵩SÈÇ7˜-ÕURO˜¦´f$ªž-Í6(œ}<„ éc øs]ŽŽ„*—¾ ìdŽ„)méª\¿êÎIg¾ØÞ~I#C/¼¼´EÁÈŽi8“©õådô·>euä ƒ'Ê×लR1ÉJE1ÐAát`t;ÇР%Ý<‡¥„ÍÆ`×Oyó)õiI€ñQaŸ4Ûù\áàaÃÔ¹HÃu¹*k€¦<„e S‡&õÏ B!ŽhüÞ`yj}mªf×\¿ Ç~æ­9‡û\՞Ǖg²1Žû5V7 !àöšm° c`ܬøÇìµÒ'P"?…´Ö,"§^•õލsÔ)6˜sæéÍR¼ ò|Sl”‹7 nPW Gòú÷½§O¯‡„l¡kSÞŒr½PÊ@æ¢pŽ-mÿ #Ÿ˜Àº¶Áä¦;ïÔæ$1££`“Õ>„—·ž)ßð³ñ#Ï Ô$¶œ‰ÊE‹À;÷º ¯«P:Ñ”8–IÊtpÞ3ª“>ê“þës4ò2OÏÕ­±zô†Õ§‰.÷ä¸;¿˜“'œ›žª}«Œ{ª±Ì 9ÔóÞÕ‡0 $íWV3Üì¬ —@kÝ4@¿r¼±½¬™›?øØæ´'Áé®CË3-g$˜ö‡×auÚi´Žp/êÛ æF›Ú2v‹ã¿¿,nB1̨ƃqÞa5͝@&Æû“él÷ \C²½UÍc ¯k×¢U ÖéQå™—-r wô ÞÏ<Ò=&=ÿ Ôê Òêˈt,i—;LîÜ á¸*ÚÃ1$êL•LÍ <É)ýÐà’ ;F™{ƒ™˜€&'}‚ãÄK`¡ÞT@I;®žZóè‚s’7®°›+§O­Åq©é»²9<Ô J ¼9O’HL»Ùïì¸rk¼Ž_ý‘TŸu[²ßÚŒ·ü÷B%¯E ŸÔX5êO´ Ç•€’I0 ÉJX` ñ¹õ%;µŸD‘«´€àwÒ™U ûئžÖö\×®×´8 ½‡ºÐÆÓ§?Àkmœ=;d5*@-ì0F Rªýš[Ü6âö̃ڸr*KA9· u*µæ£?U¸Âêí†8@¦X4 e-ò„0s{ HâUpU?¼mñRa°®a%Ð'tÉ×’\¾ÊÉ]t›h>·(Ë@R¼¡Ãt h}’O÷au<+nT…Ö…MӐ??Óe95 q>í/;&JSû °¯ÊéÞ øƒ*Ã2½Ài&:nôUl=¾¿5eˆ3”ñc|Ú2V”>„»&eE;«ÚäC p¢Û úy 9š[ŒÌx¼擼A&DåÒ¯ˆ¤ÀÌ;"˜ ÏQä¸åhÊ}Ûq«Û0WžÒ|»€ø®öCm5•\ÇÀ§Pe3£]0ÃàLDÉ‰1øªxjgwT‚÷¿LΨK‹›ùs—xˆÜ±µ kæ¸f‰‰ÜGk/LÛØ6d9ò¶ùA{ƒA3š/¬D¬khÓk‰`˜"㯒r¿±Óã jx‡°e}<Ñø\3y:'À•/h½Í€Ç4~g ?Û(¼]v‘ªlKÎâ~?O‚W%{Ì:“'©úNq¾›úo(X’¥¯ˆ nFê{Ç€ü?º'ë ø‹ì Þ09ŒÌç9Æ —ËC`j@ÓÄ(+a‹un¸#ÂꟋ{K`‘ÑÍÍ'à´»/Û,KW;Þ4²þð ï Nm|~fGÏ(…³Ã)«1ö­Õ ¥‡¨©ƒÃ™ü-s=à=U66Ï«Ýc蓦W¹íž®›nÔ%êÇìŒ<#Ü×84ån®Ð ÒåOC` ñânÑs‡¢ç 1õ%Îhì½Ã½® e:ݼUZo™`  ÅZŸŒÊ«ê1ÏÄo$q¹Þ€©ˆhÐÉä¯ñ[!…Ú˜àJ:x2$Íß&PåT£6ç— ‡Í*4Ýšçjÿ ‰É nófÐ ó(L5C•åÆ\rMÒ@ò }y-W}™üýVù—ú¢=Ù”c®‘< M ž ´Phr ¦©TD ‘ù.$´÷O‡‘V2Æò.=IUŒ=ž‡â¬i™aþÓåÙ?òUø'ØÖ•.~* šTŒ!•-×áºTâ®ä#õü'´ eýlYÅÓeÕKÂrT"CÚ@u!Óxƒ{š3€}1¿(r}%«nËamjÑ%ÑNEò v ˜à  σöK³,*º.àzù¨™Ó ÚçâU¦*¿ 9{%Ö¹ njûdaXöb) kÛÆ±ûÓ\°M7ˆÂ=û›ç¿Ã‚­V»Cg–8ÙêE- j)k$º`Ã-ùEýeBÆÇ]c¡°ñty&Òd0nõ'¡W+ƒ*|–øµFa\GQªEAÔp5\Ǽ·¼Ç8·õ -â§Ú[ ‡ uZeÖ 3}×d'+¹:ð+K†Û®s!Ï$úe€<Û”x)1»a­¡LC]¸µík…ÚàA»AYº{†ªS[¦5HÒ7ù --,ísòDØ€èk ÞÀîÜ ò@â( ËNˆë›4ô½•/¦o‡€Û7 ê•ÆêòðÜy'Án½µ á˜ݦ ndeo…[ì¶Ê,¥R³Ä=À±—–ß;£™´ñSâ*g§”ïaið‘Jå~™ÓÞ ß³Õ¢»8x埒²52>AÊb&-÷\7´éÄù€T˜,w;3{ï˜k…à¹ÄqÀ«œ{€\ ˆ¾[´¨јr &Úé„Ívˆ±8†¿]|¬ņ4I×pÞS1ÈÖz‰#Ìv‡G!YNògñ:màTz¢Ý1ô©^O=~ë|5Bã™ç•¼µõ•bÆ@úÕS¬ÈŒ#¬zünrŸ û” Z²•èðV"ÁHÚý©wÝ €7¼Ìu1hÑa3Éä û f$o¿É ™Ú›ÝçnpÒ3äÌ3†Í§,Äï]$‰/pê †«À¼¸e9­Æê_C]žƒ·ý·frÁN«, E=›Çq -‰öŒ:aÏ¿±í&£Í:-} 84‘ÿ eƒQÑeëSsuiA ³g㟥ú£?ÿ ʼn*”“÷aühe:ÊWa@ÒÞk±eØ] F Ô—r.åä˜ @ö¥ªZoÐýYL·¥S²G/‡ñ <~*ZÆ´è>JlòàÛÆ½ÿ 窘ìGN¢:I®KšJp/`íIÁÀõ#Ä-€ö­šµŒoF4|ÆQØÆ@Ì|£Ô…¢À{9˜è½Üó›€ôYÒÎYsið;ís¤€à²ˆ‚4qÉVŒI$ ‰"° æµ8cXGjœˏ¡Aâý•ËÜ¢ûï e·çLx']á"oÅÎê3¯Ç—¹”ó0nå‚âg{Œñ> S´˜îè°g238‚ãköÝfÚd´6Ò€;ò÷±¢™¼›º ¢Æ'¥Ðx'e¬ç ]bÈÆV¢ó‹kýBO ðÊâ$Ÿ!×T 3Mýמ žìٍàÌü‘8÷€àæØ8æ©6‰©L´«…oãpð„~Çk‰!ñ;‹”ÛžÍ àž±z Ÿôû øŸÝužÏ;ÿ #|u6™Þ¬ÚˆÐõA4¶â|ôl|Ê2ŽÇ¤ÝÅÇY.<#Aí.k§hóF‚”Y; M½Ö4hŸ4&›­¿tès´%FìL¥£Ãk‰ÇT¤haÁ¤ÚxfÉ`ÑìË›>i 3t‚:,–+^÷´–{Û–Nxi"x‘Ûg î¨>¥Õ܁ùZH,2Û“:8xÊ¢Çí9.É-Ìâã-=çjwµS˜dütžçwýGòú®®ûº_ˆýx$–¡ãøO EÚÛÏ÷R„×w+3£Á£öUMyR²¹âŒ°š›¸Ñãò9§Ó_Dl+Ùßc›úšGÅÌc†Ž!Ko=¶.‘Îÿ c²(2®V mª.ÿ ¹B›¹å ù„öŸSV>™ü¯$y:G¢Z×àøúdî¹û­·ýÇ´:•c LÍõi_‹ö+ÎæGÊè>OŠ•äž´§Þ{X}¨1ÚTc›»Qþ•êô°t¿OP?eæ~É{5]•ÙR£r5†nZ\ã@ &îJõ ¾àC°þV>fé¥/ü5ñÊIº_é5 ;e­h<@ Ä&æÃëE%;X,ÒãÆÞ`Oò¦kŸm#˜!ÀyÄ¢| óLšò¥Ä` ¶R=|ÈCâh5ò3DˆïF†ðÒ#ÅìÛœ?¸yhBãœí ZxßÎÄhºRK„`Þödvײ™ÀÈÑÒgŒuY w³%†ƒÓzõ ÖÏp‚dH®¦A´ù§»ÓÇMæ~)ˆð‡û:ù&Ä •vGD´À n ݇¼Ö8Fö óáà£~Ë¥x`oK|Ä?fxiØü%pìR>éò+Û±éÎ>núlFŤ'tq8LZÏvÃ?„¡ß±È⽆¯³íü@x|PöUäèØã¡ð‚ŒAìÏ"vÍwóŸÍ{ ý0.z È•Ö{,N¡£¡ŸKÕÙž>Ýœþ ÍÀ°<×EA!Å‚D™IúOÍ¡>ôG}Â` ÍßkÜL™Ž Þð™ {IøF²¹òQ3&!ÃÂÞz.d&Ï-sH¸,Ôõ˜ŽP€ 77ˆÝ¼ÊëÜw =cÕ Ú,ØÐ5ÎYÐ)ì´öœgŒ[¤ßv㙑8心>h]§µháYš£²ºÑ.{Ï7Sð•?´~×SÃKýJÛ˜ ™Íäiúu<µX¶1õ^kâçIÑ£sZ4h>j*ÔšD:4­¿_ ÷¸ Õxæÿ ¸?Mù _•­ÊÐ ä ÷ý ÑwL œ­ïnTkÛUÍN©ë:¦fV ¶ÜÔÜMªÅâA½–¿R×TXš-%iTÊT•‡Ù‚JôϐZxWÑè‰f‰òG º ×Õû2aZ7OU3[“×AT–ÞŒ…-‘¤”Ì ì&(ˆ¿­•ƒkï’:ðY¦W‘ Å)“†‘˜³Åtcø˜ñTÂwÚÇ4|üLÇªí–v- qˆèU qPE.†â‘˜µ Æ,ÐÅs]8¾„oúÑ i>ÜxxÈó)ƒ ´æÁâØ$À‰vžŸf$Ž |ãw;ÀÁIJ»b` {¦Ó¤Ú$©YÀ‘n@Óïž«9J¼êG m¤ ܯ¹ÌW4€ÐÒÅÛ‡#褕Ÿn-?í|с¥÷Ú¹¬'´ÞÜ9ÓK `hê£SÄSà?7—Wí_´…óB›»:=Ãïq`<8ñÓŒÑlú2d¬ê³£hÖ[l|$vÝro~'R®‰§°ñmY ͧäP |PUª¹·:3Œ[Û{Xÿ ºâ@‚W–Äé u‚ ¯´*=íή.pûÒdt @G‰¬ s¸ ëÉücr ÞæÑ¨Ê@>¤¢Ö±. Þ'¯°ÌME[YéïĵÂCå½ Ué©Áû'Ê9%eÔðNU”ë‘ÌsD3/®+UI˜9h.WC”빓$#:pz:YÓ ¿xž* ³$Í +$kñAŠ‹†¢ Uê>¸)_š¬÷©ßAÂÔb9ÇU ¯¾á•9¯ÏÏ÷O÷¼¼Fähal1‰3Ì[Ïr•´UCksNÐ] R‘¸¥H+§Šé†c©vÖÞ0iÓ76s†î!§=ß ¼~Ô'°Ãmäoäš³ªøi1úÉ)³yV8 CLÄØÁ‘WYïi€H6ÖÑiámø^ÈY´°Ñ7¥Û*—Ñ©L«Qƒï—Ùrÿ ›£Ð*š¸ˆL©ˆ$ˆ ÷¾D§9È®«qbqC)–ˆïv´çñsÑVT­Ø, <àïºÀO«Jý·õ àfPìð .wFšir´þ’2_Y *Æ€x\« ì€9š@ Ž|F⇥ˆkZ@hÖÄ0t¿-<“‹qµ¾*ZL¤Ú)&BJpÓF5=$„at*Zš$’ÑtdûÝRI1 2މ$€$I$#‰SÞ’Hë¬ï;Á$¡t$’`<(ñÇt)$‡Ð.Êf¢X’Kt=Éé$‚ˆªè¢oÝëòI%Rgcª÷ŠyI%¡‰ÿ !ñ)´õ $¤ Ô’IIGÿÙa 3g@sddlZddlZddlZddlZddlZddlZGdddZGdddZGddde Z Gdd d e Z Gd d d e Z Gd d d e ZGdddeZGdddeZGdddeZGdddejZedkredS)Nc@seZdZddZddZdS) PosReturncCs d|_dSNr)posselfr7/opt/python39/lib/python3.9/test/test_codeccallbacks.py__init__ szPosReturn.__init__cCs>|j}|}|dkr t|j|}||jkr6t|j|_d|fS)Nr)rlenobjectstart)rexcZoldposZrealposrrrhandles  zPosReturn.handleN__name__ __module__ __qualname__r rrrrrr src@seZdZdddZddZdS)RepeatedPosReturnr cCs||_d|_d|_dSr)replrcount)rrrrrr szRepeatedPosReturn.__init__cCs0|jdkr$|jd8_|j|jfS|j|jfS)Nr)rrrend)rrrrrr s  zRepeatedPosReturn.handleN)r rrrrrrs rc@seZdZddZdS)BadStartUnicodeEncodeErrorcCst|dddddg|_dSNasciirrbad)UnicodeEncodeErrorr r rrrrr (sz#BadStartUnicodeEncodeError.__init__Nrrrr rrrrr'src@seZdZddZdS)BadObjectUnicodeEncodeErrorcCst|dddddg|_dSr)rr r rrrrr .sz$BadObjectUnicodeEncodeError.__init__Nrrrrrr -sr c@seZdZddZdS)NoEndUnicodeDecodeErrorcCs t|dtdddd|`dSNrrrr)UnicodeDecodeErrorr bytearrayrrrrrr 4sz NoEndUnicodeDecodeError.__init__Nrrrrrr!3sr!c@seZdZddZdS)BadObjectUnicodeDecodeErrorcCs"t|dtddddg|_dSr")r$r r%r rrrrr :sz$BadObjectUnicodeDecodeError.__init__Nrrrrrr&9sr&c@seZdZddZdS)NoStartUnicodeTranslateErrorcCst|dddd|`dSNrrrr)UnicodeTranslateErrorr r rrrrr @sz%NoStartUnicodeTranslateError.__init__Nrrrrrr'?sr'c@seZdZddZdS)NoEndUnicodeTranslateErrorcCst|dddd|`dSr()r)r rrrrrr Fsz#NoEndUnicodeTranslateError.__init__Nrrrrrr*Esr*c@seZdZddZdS)NoObjectUnicodeTranslateErrorcCst|dddd|`dSr()r)r r rrrrr Lsz&NoObjectUnicodeTranslateError.__init__Nrrrrrr+Ksr+c@sLeZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-d.Zd/d0Zd1d2Zd3d4Zd5d6Zd7d8Zd9d:Zd;d<Z d=d>Z!d?d@Z"dAdBZ#dCdDZ$dEdFZ%dGdHZ&dIdJZ'dKdLZ(dMdNZ)dOdPZ*dQS)RCodecCallbackTestcCs0d}||ddd||ddddS)Nuスパモ änd eggsrxmlcharrefreplaces&スパモ änd eggslatin-1s!スパモ nd eggs assertEqualencode)rsrrrtest_xmlcharrefreplaceRs  z(CodecCallbackTest.test_xmlcharrefreplacecCsddd}td|d}d}||dd|d}||dd|d }||d d|dS) Nc Sst|tstd|g}|j|j|jD]H}z|dtjj t |Wq,t yr|dt |Yq,0q,d ||jfS)Ndon't know how to handle %rz&%s;&#%d;r) isinstancer TypeErrorr r rappendhtmlZentitiesZcodepoint2nameordKeyErrorjoinrlcrrrxmlcharnamereplaceds   zECodecCallbackTest.test_xmlcharnamereplace..xmlcharnamereplaceztest.xmlcharnamereplaceu«ℜ» = 〈ሴ€〉s0«ℜ» = ⟨ሴ€⟩rs$ℜ = ⟨ሴ€⟩r.sℜ = ⟨ሴ⟩ iso-8859-15codecsregister_errorr0r1)rr@sinsoutrrrtest_xmlcharnamereplace`s z)CodecCallbackTest.test_xmlcharnamereplacecCsddd}td|d}d}||dd|d}||dd|d }||d d|dS) Nc Ss`t|tstd|g}|j|j|jD]}|t|dt |q,dd ||jfS)Nr4z0x%xz %sz, ) r6rr7r r rr8 unicodedatanamer:r<r=rrruninamereplaces   z=CodecCallbackTest.test_uninamereplace..uninamereplaceztest.uninamereplaceu ¬ሴ€耀sNNOT SIGN, ETHIOPIC SYLLABLE SEE, EURO SIGN, CJK UNIFIED IDEOGRAPH-8000rsEETHIOPIC SYLLABLE SEE, EURO SIGN, CJK UNIFIED IDEOGRAPH-8000r.sAETHIOPIC SYLLABLE SEECJK UNIFIED IDEOGRAPH-8000rArB)rrJrErFrrrtest_uninamereplacezs z%CodecCallbackTest.test_uninamereplacecCsPd}d}||dd|d}||dd|d}||dd|dS) Na¬ሴ€耀􏿿s!a\xac\u1234\u20ac\u8000\U0010ffffrbackslashreplacesa\u1234\u20ac\u8000\U0010ffffr.sa\u1234\u8000\U0010ffffrAr/rrErFrrrtest_backslashescapesz&CodecCallbackTest.test_backslashescapecCsPd}d}||dd|d}||dd|d}||dd|dS) NrLs[a\N{NOT SIGN}\N{ETHIOPIC SYLLABLE SEE}\N{EURO SIGN}\N{CJK UNIFIED IDEOGRAPH-8000}\U0010ffffr namereplacesPa\N{ETHIOPIC SYLLABLE SEE}\N{EURO SIGN}\N{CJK UNIFIED IDEOGRAPH-8000}\U0010ffffr.sDa\N{ETHIOPIC SYLLABLE SEE}\N{CJK UNIFIED IDEOGRAPH-8000}\U0010ffffrAr/rNrrrtest_nameescapesz!CodecCallbackTest.test_nameescapecCsJdd}td|d}d}||dd|d}|t|jdddS)NcSsFt|tstd||j|j|jddkr>d|jdfS|dS)Nr4s)r6r$r7r r rrrr relaxedutf8s   z>CodecCallbackTest.test_decoding_callbacks..relaxedutf8ztest.relaxedutf8s abcüu abcüutf-8s)rCrDr0decode assertRaisesr$)rrUrErFrrrtest_decoding_callbackss  z)CodecCallbackTest.test_decoding_callbackscCstdddD}d}d}|t|d|d|d}|ttj|d|d |td <d }d }|t|d |d|d|td <|ttj|d |dS)Ncss(|] }t|td|dfVqdS)rRrN)r:bytesupper.0r?rrr r#z7CodecCallbackTest.test_charmapencode..ZabcdefghabcsAABBCCstrictrZabcAsXYZ?ZabcDEFsAABBCCXYZXYZXYZreplaceZXYZ)dictr0rCcharmap_encoderX UnicodeErrorr:r7)rcharmaprErFrrrtest_charmapencodes  z$CodecCallbackTest.test_charmapencodecCsdd}td|dd}td|d}||ddd ||ddd |d d dd |dd dd|tddtddidd|dddd|dddddS)Ncsjtjj}ttr,fdd|D}n*ttrJfdd|D}n tddd|jfS)Ncsg|]}dtj|qSz<%d>)r:r r]rrTrr r#zFCodecCallbackTest.test_callbacks..handler1..csg|]}dj|qSrhr rirTrrrjr#r4[%s]r)ranger rr6rr$r7r<)rrr>rrTrhandler1s   z2CodecCallbackTest.test_callbacks..handler1z test.handler1csJttstdfddtjjD}dd|jdfS)Nr4csg|]}dj|qSrhrkrirTrrrjr#zFCodecCallbackTest.test_callbacks..handler2..rlrr)r6r$r7rmr rr<)rr>rrTrhandler2s  z2CodecCallbackTest.test_callbacks..handler2z test.handler2srz[<129>][<128>][<255>]z[<129>][<128>]s \u3042\u3xxxunicode-escapeuあ[<92><117><51>]xxxs \u3042\u3xxuあ[<92><117><51>]xxabcazrz z[<98>][<99>]ugüßrksg[<252><223>]rkugüßs g[<252><223>])rCrDr0rWcharmap_decoder:r1)rrorpr2rrrtest_callbackssB        z CodecCallbackTest.test_callbacksc sgd}|D]}td|t|q d|dd|D7}fdddDD]<}dD]2}|D](}z|||Wq`tyYq`0q`qXqPdS) N)r`ignorerbr-rMrPtest.cSsg|] }d|qS)rxr)r]errrrrrj%r#z6CodecCallbackTest.test_longstrings..csg|] }|qSrr)r]r2r>rrrj&r#)xあuaä)rr. iso-8859-1rArVutf-7utf-16utf-32)rCrD lookup_errorr1re)rerrorsrzZuniencrr{rtest_longstringss z"CodecCallbackTest.test_longstringsc Cs|jt|g|ddR|jt|g|dgRgd}tt|D]p}|D]f}t|t||urlqRg}tt|D]&}||kr||q||||q||jt|g|RqRqJ||} |t| |dS)Nztoo much)Zspamseggssspam*g?N)rXr7rmr typer8r0str) rexctypeargsmsgZ wrongargsiZwrongargZcallargsjrrrrcheck_exceptionobjectargs/s z+CodecCallbackTest.check_exceptionobjectargscCsp|tgdd|tgdd|tgdd|tgdd|tgd d |tgd d dS) N)rgürkrrRouchz?'ascii' codec can't encode character '\xfc' in position 1: ouch)rrrrz;'ascii' codec can't encode characters in position 1-3: ouch)ruüxrrrz?'ascii' codec can't encode character '\xfc' in position 0: ouch)ruĀxrrrzA'ascii' codec can't encode character '\u0100' in position 0: ouch)ru￿xrrrzA'ascii' codec can't encode character '\uffff' in position 0: ouch)ru𐀀xrrrzE'ascii' codec can't encode character '\U00010000' in position 0: ouch)rrrrrrtest_unicodeencodeerrorHs<z)CodecCallbackTest.test_unicodeencodeerrorcCs<|tdtddddgd|tdtddddgddS) NrsgrkrrRrz8'ascii' codec can't decode byte 0xfc in position 1: ouchz6'ascii' codec can't decode bytes in position 1-2: ouch)rr$r%rrrrtest_unicodedecodeerrorhsz)CodecCallbackTest.test_unicodedecodeerrorcCs^|tgdd|tgdd|tgdd|tgdd|tgd d dS) N)rrrRrz4can't translate character '\xfc' in position 1: ouch)ugĀrkrrRrz6can't translate character '\u0100' in position 1: ouch)ug￿rkrrRrz6can't translate character '\uffff' in position 1: ouch)ug𐀀rkrrRrz:can't translate character '\U00010000' in position 1: ouch)rrrrz0can't translate characters in position 1-2: ouch)rr)rrrrtest_unicodetranslateerrorts2z,CodecCallbackTest.test_unicodetranslateerrorc Cs~|ttjd|ttjtd|ttjtddddd|ttjtdtdddd|ttjtdddddS)Nrrrr}rr) rXr7rC strict_errors Exceptionrr$r%r)rrrrtest_badandgoodstrictexceptionss2 z1CodecCallbackTest.test_badandgoodstrictexceptionsc Cs|ttjd|ttjtd|ttdddddd|ttdtddddd|tt ddddddS) NrrraあbrrR)rrRab) rXr7rC ignore_errorsrer0rr$r%r)rrrrtest_badandgoodignoreexceptionss8 z1CodecCallbackTest.test_badandgoodignoreexceptionsc Cs|ttjd|ttjtd|ttjt|ttjt|ttdddddd|tt dt ddddd |tt ddddd dS) NrrrrrrR)rarRr)�rR) rXr7rCreplace_errorsrer r&r0rr$r%r)rrrr test_badandgoodreplaceexceptionssL z2CodecCallbackTest.test_badandgoodreplaceexceptionsc Cs|ttjd|ttjtd|ttjtdtdddd|ttjtddddd}|d 7}d d d |D}| tt dd |dddt |dd dd |Ddt |fdS)Nrrrrrrr})rr cdiryi''i順i?B@B)iircss|]}t|VqdSNchrr\rrrr^r#zOCodecCallbackTest.test_badandgoodxmlcharrefreplaceexceptions..rsbcss|]}d|VqdS)r5Nrr\rrrr^r#) rXr7rCxmlcharrefreplace_errorsrer$r%r)r<r0rr )rcsr2rrr*test_badandgoodxmlcharrefreplaceexceptionss> z|tt dt d |d dd d|d fWdq1s>0YqdS)Nrr) )r}z\u3042) \x0a)rs\x61rS\x00)ÿ\xff)uĀz\u0100)u￿z\uffff)u𐀀z \U00010000u􏿿z \U0010ffffz\ud800z\udfffz \ud800\udfffrrrsrr))ar) r)r)rr)rZrbrR) rXr7rCbackslashreplace_errorsresubTestr0rr r)r$r%)rtestsr2rnrrrr)test_badandgoodbackslashreplaceexceptionssP  $ z;CodecCallbackTest.test_badandgoodbackslashreplaceexceptionsc Cs|ttjd|ttjtd|ttjtdtdddd|ttjtddddgd}|D]n\}}|j|d J| tt dd |d ddt |d|dt |fWdqj1s0YqjdS) Nrrrrrrr}))r}z\N{HIRAGANA LETTER A}r)uﯹzW\N{ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM})u󠁿z\N{CANCEL TAG}rrrrrrsr) rXr7rCnamereplace_errorsrer$r%r)rr0rr )rrr2rnrrr$test_badandgoodnamereplaceexceptionsSs>  z6CodecCallbackTest.test_badandgoodnamereplaceexceptionsc Cstd}|t|d|t|td|t|tdddddD]J}|j|d*|t|td |dddWdqF1s0YqF||td d dd dd |t |t d t d ddd||t d t ddd dddS)Nsurrogateescaperrrr)rsuurruabrR)rRrsab)rrR) rCrrXr7rer)rrr0r$r%)rZsurrogateescape_errorsr2rrr(test_badandgoodsurrogateescapeexceptionssP  $z:CodecCallbackTest.test_badandgoodsurrogateescapeexceptionsc Cstd}|t|d|t|td|t|tdddddD]j}|j|dJ|t|t|d ddd|t|t|d |dddWdqF1s0YqFd D]N}|j|d .|t|td |dt |dWdq1s0Yqgd }|D]\}}}}|j|||d| |t|d |dddt |d|dt |f| |t|t d|d|ddd|d|ddd|fWdn1s0YqdS)N surrogatepassrrrrr)rVutf-16leutf-16beutf-32leutf-32beencodingrs)rrrrr))rVrsr)rrsrR)rrsrR)rrsr)rrsr)rVrsr)rrsrR)rrsrR)rrsr)rrsr)rVrsr)rrsrR)rrsrR)rrsr)rrsr)rrrZrrr) rCrrXr7rer)rrr$r1r r0r%)rZsurrogatepass_errorsrr2rrnrrr&test_badandgoodsurrogatepassexceptionssl  $$ z8CodecCallbackTest.test_badandgoodsurrogatepassexceptionscsfd}d}|D]Ttdfdd|D]}|tdj|dq(dD]\}}|t|j|dqDq dS)N) rfoo)rrRrrrrrNrrrr)rr.r~rAztest.badhandlercsSrr)r|resrrr#z:CodecCallbackTest.test_badhandlerresults..r})rrrVr)rs+x-)rCrDrXr7r1rW)rresultsZencsrrZrrrtest_badhandlerresultss$ z(CodecCallbackTest.test_badhandlerresultscCs||tjtd|tjtd|tjtd|tjtd|tjtd|tjtddS)Nr`rwr-rMrP)r0rCrrrrrrrrrr test_lookupszCodecCallbackTest.test_lookupc sfdd}td|dD]0\}}||d}||dd|qdD]\}}|j|dv|t}||dWdn1s0Y|j}||jd ||j d ||j |WdqR1s0YqRdS) Ncs$t|tr|jfStd|dSNr4r6rrr7rTrrrr s  zBCodecCallbackTest.test_encode_nonascii_replacement..handletest.replacing))r[¤]r_)r~[€]u½¾)rAruœŸ[]))rV[]🐍)rrr)rrrrrrR) rCrDr1r0rrXr exceptionr rr )rrrinputrcmrrrr test_encode_nonascii_replacements    *z2CodecCallbackTest.test_encode_nonascii_replacementc sfdd}td|dD]\}}|j|dv|t}||dWdn1s`0Y|j}||jd||j d||j |Wdq1s0YqdS)Ncs$t|tr|jfStd|dSrrrTrrr unencrepl<s  zHCodecCallbackTest.test_encode_unencodable_replacement..unencreplztest.unencreplhandler))rr½)r~ruœ)rArr)rVr)rrr)rrrrrrR) rCrDrrXrr1rr0r rr )rrrrrrrrr#test_encode_unencodable_replacement;s   *z5CodecCallbackTest.test_encode_unencodable_replacementc sfdd}td|dD]b\}}|j|d<||d}||d|d|Wdq1st0YqdS)Ncs$t|tr|jfStd|dSrrrTrrrrTs  z?CodecCallbackTest.test_encode_bytes_replacement..handler))rr)r~rr)rArr)rVrr)rrr)rrr)rr)rrrrrr)rCrDrr1r0)rrrrrrrrtest_encode_bytes_replacementSs     z/CodecCallbackTest.test_encode_bytes_replacementc sfdd}td|d}gtdddgtdgd RD]\}|j|d |t}||dWdn1s0Y|j}| |j d | |j d | |j || |j d WdqB1s0YqBdS)Ncs$t|tr|jfStd|dSrrrTrrrrjs  zCCodecCallbackTest.test_encode_odd_bytes_replacement..handlerr)rrrrr)rr)rsabrrsabcde)rrrrRzsurrogates not allowed)rCrD itertoolsproductrrXrr1rr0r rr reason)rrrrrrrrr!test_encode_odd_bytes_replacementis(   *z3CodecCallbackTest.test_encode_odd_bytes_replacementcCs&|ttjd|ttjdddS)Nrz test.dummy)rXr7rCrDrrrrtest_badregistercallsz&CodecCallbackTest.test_badregistercallcCs|ttjdSr)rXr7rCrrrrrtest_badlookupcallsz$CodecCallbackTest.test_badlookupcallcCs|ttjddS)N test.unknown)rX LookupErrorrCrrrrrtest_unknownhandlersz%CodecCallbackTest.test_unknownhandlercCsJd}ddd|D}tdtjdD]}dD]}|||q2q*dS)N) rr2riryiriPri rrcSsg|] }t|qSrr)r]r|rrrrjr#z;CodecCallbackTest.test_xmlcharrefvalues..test.xmlcharrefreplace)rrA)r-r)r<rCrDrr1)rvr2rrzrrrtest_xmlcharrefvaluess z'CodecCallbackTest.test_xmlcharrefvaluesc Cs|tdjdddd}td||tdjdd|tdjdd|td jdd|td jdd|td jdd|td jd ddd}td||tdjddt}td|jd|_| ddddd|_| ddddd|_|t djddd|_| ddddd|_| ddddd|_|t djddd|_| dd ddGdddt }|t tj dd d!di|ttj dd ||ttj dd d!tjdidS)"NrrrcSsdSNrrrTrrrbaddecodereturn1sz=CodecCallbackTest.test_decodehelper..baddecodereturn1ztest.baddecodereturn1\rqs\x0s\x0ys \Uffffeeees\uyyyyraw-unicode-escapecSsdSN)raNrrTrrrbaddecodereturn2sz=CodecCallbackTest.test_decodehelper..baddecodereturn2ztest.baddecodereturn2test.posreturnrs0z0zrrRr rs\uyyyy0c@seZdZddZdS)z.CodecCallbackTest.test_decodehelper..DcSstdSr ValueErrorrkeyrrr __getitem__sz:CodecCallbackTest.test_decodehelper..D.__getitem__NrrrrrrrrDsrr`)rXrrWrCrDr7rrrr0 IndexErrorrcrerursys maxunicode)rrr handlerrrrrtest_decodehelpers@  z#CodecCallbackTest.test_decodehelperc Csv|tdjdddd}td||tdjdddd}td ||tdjdd t}td |jd |_| d dd d d|_| d dd dd|_|t d jdd d|_| d dd d d|_| d dd dd|_|t d jdd d|_Gdddt }dD]L}|t tj d|ddi|ttj d|||ttj d|ddiq$dS)NrrrcSsdSrrrTrrrbadencodereturn1sz=CodecCallbackTest.test_encodehelper..badencodereturn1ztest.badencodereturn1cSsdSr rrTrrrbadencodereturn2sz=CodecCallbackTest.test_encodehelper..badencodereturn2ztest.badencodereturn2r ruÿ0s0r sr rrRsrrc@seZdZddZdS)z.CodecCallbackTest.test_encodehelper..DcSstdSrrrrrrrsz:CodecCallbackTest.test_encodehelper..D.__getitem__Nrrrrrrsr)r`rbr-rMrPr ri,)rXrr1rCrDr7rrrr0rrcrerdr)rrrrrrzrrrtest_encodehelpers6  z#CodecCallbackTest.test_encodehelperc Cstd}td|jgd}|D]`\}}d||}|j|d.d|_||d}||dWdq"1sx0Yq"dS)Nr| test.bug36819)rr)rs܀)rs܀)z iso-8859-6rZabcdrrabcdxabcdxabcdxabcdxabcdxabcdxabcdxabcdxabcdxabcdxabcdxabcdxabcdxabcdxabcdxabcdxabcdxabcdxabcdxabcdxabcdxabcdxabcdxabcdxabcdxabcdxabcdxabcdxabcdxabcdxabcdxabcdxabcdxabcdxabcdxabcdxabcdxabcdxabcdxabcdxabcdxabcdxabcdxabcdxabcdxabcdxabcdxabcdxabcdxabcdxabcdx) rrCrDrr1rrrWr0)rrZ testcasesrrrZdecodedrrrtest_decodehelper_bug36819s  z,CodecCallbackTest.test_decodehelper_bug36819c Cst}td|jd}gd}|dg7}tjdkr.DcSstdSrrrrrrrUsz=CodecCallbackTest.test_translatehelper..D.__getitem__NrrrrrrTsrrrrr)rcrXr translaterrr7)rrrrrtest_translatehelperNsz&CodecCallbackTest.test_translatehelpercCsDtddtddtddtddi}d D]}d |}||q(dS) N&z&z>"z")rrrryz abcghi)r:r))rrfrtextrrrtest_bug828737[sz CodecCallbackTest.test_bug828737c Csgd}dd}td||D]>\}}|t||dWdq 1sT0Yq dd}td||D]\}}|||ddqxdS) N)r)rs++r)rr)rr)rq\u123g)rr1cSs$t|trd|_dStd|dS)Nr䉂rr4r6r$r r7rTrrr replacingrs z?CodecCallbackTest.test_mutatingdecodehandler..replacingrcSs$t|trd|_dStd|dS)Nr#r2r4r4rTrrrmutating~s z>CodecCallbackTest.test_mutatingdecodehandler..mutatingz test.mutatingr3)rCrDrXr7rWr0)rZbaddatar5rdatar6rrrtest_mutatingdecodehandlergs    ,  z,CodecCallbackTest.test_mutatingdecodehandlercCsdd}td||dddd|dddd|d d dd |d d dd dd}td||dddd|dddddS)NcSs(t|trd|jdfStd|dS)Nrrr4)r6r$r r7rTrrrforward_shorter_than_ends zPCodecCallbackTest.test_crashing_decode_handler..forward_shorter_than_endztest.forward_shorter_than_endsz utf-16-leu����Øsz utf-16-bes z utf-32-leu ���ᄑs z utf-32-becSs*t|trd|_d|jfStd|dS)Nsrr4)r6r$r r r7rTrrrreplace_with_longs  zICodecCallbackTest.test_crashing_decode_handler..replace_with_longztest.replace_with_longrru�ru�)rCrDr0rW)rr9r:rrrtest_crashing_decode_handlersL   z.CodecCallbackTest.test_crashing_decode_handlerc s"tjtjtjtjtjtjtdtdg}tt t fD]Gfdddt }|D]B}|j |d | t||WdqR1s0YqRGfdddt}|D]l}|j |dH| t|f||Wdn1s0YWdq1s0Yqq6dS)NrrcseZdZZdSzACodecCallbackTest.test_fake_error_class..FakeUnicodeErrorNrrr __class__rclsrrFakeUnicodeErrorsrA)rZ error_classcseZdZZdSr<r=rr?rrrAs)rCrrrrrrrrr$r)rrrXr7r)rhandlersrArrr?rtest_fake_error_classs& 0z'CodecCallbackTest.test_fake_error_classN)+rrrr3rGrKrOrQrYrgrvrrrrrrrrrrrrrrrrrrrrrrrrrr!r(r*r0r8r;rCrrrrr,PsP 9  (%:.,H ;6,  $3r,__main__)rCZ html.entitiesr9rrrHZunittestrrrrr r$r!r&r)r'r*r+ZTestCaser,rmainrrrrs4