ÿØÿà 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ÿÙ (i_ 0dZddlZddlZddlZddlZddlZ ddl m Z gdZ ddddd d Zddddd d Zdd d ZdZdZdZGddZdZGddZeeeeeeeedhZdZ ddZ!dZ"e#dkr e!dSdS)a/Support to pretty-print lists, tuples, & dictionaries recursively. Very simple, but useful, especially in debugging data structures. Classes ------- PrettyPrinter() Handle pretty-printing operations onto a stream using a configured set of formatting parameters. Functions --------- pformat() Format a Python object into a pretty-printed representation. pprint() Pretty-print a Python object to a stream [default is sys.stdout]. saferepr() Generate a 'standard' repr()-like value, but protect against recursive data structures. N)StringIO)pprintpformat isreadable isrecursivesaferepr PrettyPrinterppPFTcompact sort_dictsunderscore_numbersc \t|||||||}||dS)zAPretty-print a Python object to a stream [default is sys.stdout].)streamindentwidthdepthrrrN)r r) objectrrrrrrrprinters /usr/lib/python3.11/pprint.pyrr0sCfEJ-///G NN6cRt|||||||S)z @ @ @@GPr)rc*t|g|Rd|i|dS)zPretty-print a Python objectrN)r)rrargskwargss rr r @s+ 6:D:::Z:6:::::rcVt|idddS)z=Version of repr() which can handle recursive data structures.Nrr _safe_reprrs rrrD% ?? % %fb$ : :1 ==rcVt|idddS)z4Determine if saferepr(object) is readable by eval().Nrr rr!s rrrHr"rcVt|idddS)z8Determine if object requires a recursive representation.Nrrr!s rrrLr"rc$eZdZdZdgZdZdZdS) _safe_keyaUHelper function for key functions when sorting unorderable objects. The wrapped-object will fallback to a Py2.x style comparison for unorderable types (sorting first comparing the type name and then by the obj ids). Does not work recursively, so dict.items() must have _safe_key applied to both the key and the value. objc||_dSN)r()selfr(s r__init__z_safe_key.__init__\s rc |j|jkS#t$rott|jt |jftt|jt |jfkcYSwxYwr*)r( TypeErrorstrtypeid)r+others r__lt__z_safe_key.__lt___s ;8ei' ' ; ; ;dh(("TX,,7ei))2ei==9: ; ; ; ;sA6B  B N)__name__ __module__ __qualname____doc__ __slots__r,r3rrr'r'PsEI;;;;;rr'cVt|dt|dfS)z&Helper function for comparing 2-tuplesrr )r')ts r _safe_tupler<fs! QqT??IadOO ++rceZdZd%dddddZdZd Zd Zd Zd Zd Z iZ dZ e e e j <dZee ejj <dZee ej <dZee ej <dZee ej <ee ej <dZee ej <dZee ej <dZee ej <dZee ej j <dZ!e!e ej"j <dZ#dZ$dZ%dZ&dZ'dZ(e(e ej)j <dZ*e*e ej+j <dZ,e,e ej-j <d Z.e.e ej/j <d!Z0e0e ej1j <d"Z2e2e ej3j <d#Z4e4e ej5j <d$Z6dS)&r r r NFTr c`t|}t|}|dkrtd||dkrtd|std||_||_||_|||_nt j|_t||_ ||_ ||_ dS)aHandle pretty printing operations onto a stream using a set of configured parameters. indent Number of spaces to indent for each level of nesting. width Attempted maximum number of columns in the output. depth The maximum depth to print out nested structures. stream The desired output stream. If omitted (or false), the standard output stream available at construction will be used. compact If true, several items will be combined in one line. sort_dicts If true, dict keys are sorted. rzindent must be >= 0Nzdepth must be > 0zwidth must be != 0) int ValueError_depth_indent_per_level_width_stream_sysstdoutbool_compact _sort_dicts_underscore_numbers)r+rrrrrrrs rr,zPrettyPrinter.__init__ks2VE  A::233 3  !011 1 3122 2 !'  !DLL;DLW  %#5   rc|j;|||jddid|jddSdS)Nr )rD_formatwriter+rs rrzPrettyPrinter.pprintsL < # LLq!R ; ; ; L  t $ $ $ $ $ $ #rczt}|||ddid|SNr) _StringIOrMgetvalue)r+rsios rrzPrettyPrinter.pformats5kk VS!QA...||~~rc>||idddS)Nrr%formatrOs rrzPrettyPrinter.isrecursives{{62q!,,Q//rcD||idd\}}}|o| SrQrV)r+rsreadable recursives rrzPrettyPrinter.isreadables-!%VRA!>!>8Y) M)rc t|}||vr2|t|d|_d|_dS||||}|j|z |z } t|| kr|j t|j d} | d||<| |||||||dz||=dStj |rpt|ts[|jjrOt#|j dr:d|j jjvr'd||<|||||||dz||=dS||dS)NTFr __wrapped__ __create_fn__)r1rN _recursion _recursive _readable_reprrClen _dispatchgetr0__repr__ _dataclasses is_dataclass isinstance__dataclass_params__reprhasattrr]r6_pprint_dataclass) r+rrr allowancecontextlevelobjidrep max_widthps rrMzPrettyPrinter._formats6  G   LLF++ , , ,"DO"DN Fjj%00K&(94 s88i  ""4<<#8$??A}!"$ 7EAINNNEN+F33  .. -2 &/=99  "V_%@%MMM!"&&vvvy'SX[\S\]]]EN Srcjj}|t|dzz }fdtjD}||dz||||||||ddS)Nr cVg|]%}|j |jt|jf&Sr9)rknamegetattr).0frs r z3PrettyPrinter._pprint_dataclass..s5bbbq[\[ab!&'&!&112bbbr()) __class__r4rcrgfieldsrN_format_namespace_items r+rrrrnrorpcls_nameitemss ` rrmzPrettyPrinter._pprint_dataclasss#,#h--!##bbbbL > > c rc|d||||dz|dz|||ddS)Nz mappingproxy( r r})rNrMcopyrs r_pprint_mappingproxyz"PrettyPrinter._pprint_mappingproxybs_ _%%% V[[]]FFRKQe % % % SrcDt|tjurd}n |jj}|t |dzz }|j}||dz| |||||||ddS)N namespacer r|r}) r0_typesSimpleNamespacer~r4rc__dict__rrNrrs r_pprint_simplenamespacez%PrettyPrinter._pprint_simplenamespacejs <<61 1 1#HH'0H#h--!##%%'' X^$$$ $$UFFIwPUVVV Src n|j}||jz }dd|zz}t|dz } t|D]y\} \} } | | k} || ||}|||d|| ||t|zdz| r|nd||| s ||zdS)N, rr : r%)rNrBrcrrbrM)r+rrrrnrorprNdelimnl last_indexrrentlastrrs rrz PrettyPrinter._format_dict_itemsys $((#,&ZZ!^ &u--  MAzS ?D**S'511C E#JJJ E$KKK LLffs3xx&7!&;&*1 % ) ) ) g  rc f|j}dd|zz}t|dz } t|D]\} \} } | | k} || |dt| |vr |dn1|| ||t| zdz| r|nd||| s ||dS)Nrrr =...)rNrcrr1rM)r+rrrrnrorprNrrrrrrs rrz%PrettyPrinter._format_namespace_itemss #,&ZZ!^ &u--  MAzS ?D E#JJJ E#JJJ#ww'!!e  S&&3s88*;a*?*.5YYA$e--- g  rc|j}||jz }|jdkr||jdz dzdd|zz}d} |j|z dzx} } t|} t | } n#t $rYdSwxYwd}|s| } t | } n#t $rd}| |z} | |z} YnwxYw|jrY||||}t|dz}| |kr| } | r|} | |kr| |z} || d} |||| |} | ||||r|nd|||dSdS) Nr rrrFTr%, ) rNrBrCiternext StopIterationrHrbrcrM)r+rrrrnrorprNrrrrsitnext_entrrrrws rrzPrettyPrinter._format_itemss $((  !A % % E4)A-4 5 5 5#,& K&0144 %[[ BxxHH    FF  )C #88  # # #Y& " #} jjgu55HHqL199%E( 'A::QJEE%LLL EE#JJJ E%LLLE LLff&*1 % ) ) )/ ) ) ) ) )s$A,, A:9A:BB-,B-c||||j|\}}}|sd|_|rd|_|S)NFT)rWrrArar`)r+rrorprkrZr[s rrbzPrettyPrinter._reprsT$(KK 04 U%D%D!h  #"DN  #"DO rc2|||||S)zFormat object for a specific context, returning a string and flags indicating whether the representation is 'readable' and whether the object represents a recursive construct. )r )r+rro maxlevelsrps rrWzPrettyPrinter.formats vw 5AAArct|s$|t|dS||j||}|j}|t|jdzz }||jd|dd|z|||||dz|||ddS)Nr r|rrr})rcrNrkrbdefault_factoryr~r4r) r+rrrrnrorprdfrs r_pprint_default_dictz"PrettyPrinter._pprint_default_dicts6{{  LLf & & & Fjj/%@@#cl##a'' S\\\333f EFFF &&&)a-%PPP Srct|s$|t|dS|j}||jdz|jdkr ||jdz dz|}||||t|jzdz|dz|||ddS)Nrr rr%r)rcrNrkr~r4rB most_commonr) r+rrrrnrorprrs r_pprint_counterzPrettyPrinter._pprint_counters6{{  LLf & & & F S\D()))  !A % % LL$014; < < <""$$ v &S\):): :Q > A ' 0 0 0  Trc ,t|js$|t|dS|j}||jdz|t|jdzz }t |jD]\}} |t|jdz kr3|| |||dz|||dS|| ||d|||dd|zzdS)Nr|r r}rr)rcmapsrNrkr~r4rrM) r+rrrrnrorprrms r_pprint_chain_mapzPrettyPrinter._pprint_chain_maps6;  LLf & & & F S\C'(((#cl##a''fk** 3 3DAqC $$q((( Q A wNNN S!!!! Q7EBBB US6\12222  3 3rc2t|s$|t|dS|j}||jdz|t|jdzz }|d|j4|||||dz|||ddS||||d||||j||}|dd|zd|d dS) Nr|r rr%z])z], rzmaxlen=r})rcrNrkr~r4maxlenrrb) r+rrrrnrorprrmls r _pprint_dequezPrettyPrinter._pprint_deques)6{{  LLf & & & F S\C'(((#cl##a'' S =   vvvy1}& / / / LL        vvvq& / / /**V]GU;;C LLLsV|||SSSA B B B B Brc J||j|||||dz dSNr rMdatars r_pprint_user_dictzPrettyPrinter._pprint_user_dict* V[&&)WeaiPPPPPrc J||j|||||dz dSrrrs r_pprint_user_listzPrettyPrinter._pprint_user_listrrc J||j|||||dz dSrrrs r_pprint_user_stringz!PrettyPrinter._pprint_user_string"rrct|}|tvrt|ddfSt|dd}t |t r.|t jur |jr|dddfSt|ddfSt |tr|tjur |sdSt|}|r ||krdd||vfS||vrt|ddfSd||<d}d} g} | j } |dz }|j r)t|t} n|} | D]Y\} }|| |||\}}}|||||\}}}| |d ||o|o|}|s|rd} Z||=d d | z|| fSt |t$r|t$jus#t |t&r|t&jurt |t$r|sd Sd }nt)|dkrd}n|sdSd}t|}|r||kr |dzd||vfS||vrt|ddfSd||<d}d} g} | j } |dz }|D]1}|||||\}}}| ||sd}|rd} 2||=|d | z|| fSt|}||o|d dfS)NTFrf_d)z{}TFz{...}r rrz{%s}r)z[]TFz[%s]z(%s,))z()TFz(%s)r<)r0_builtin_scalarsrkrx issubclassr?rfrJdictr1r_rrIrrr<rWjoinrtuplerc startswith)r+rrorrprrrqrZr[ componentsrrkvkrepr kreadablekrecurvrepr vreadablevrecurrWoorepr oreadableorecurrrs rr zPrettyPrinter._safe_repr's6ll " " "<<u, , CT * * c3   1A$5$5' 1 ~~tU22F||T500 c4  GQ$-%7%7 )((vJJE 8Ui//u'777!&))5$66GENHIJ&F QJE 'v||~~;???  % %1+/;;w 5,2,2(y&+/;;w 5,2,2(y&555%%0111#? ?i%V% $IDIIj1118YF F sD ! ! Ga4=&8&8 sE " "'9'(EN':':#t$$ -,,V!! -,,vJJE ?Ui//~uew.>>>!&))5$66GENHIJ&F QJE % %+/;;w 5,2,2(y&u  %$H% $IDIIj1118YF F6llS4!4!44u<)r0r4r1r!s rr_r_{s,F||$$$bjjjj 23rclddl}|ddddgdddfgd z}t}|}||iddd |}|||}t d ||z t d ||z dS) Nrstring)r r%r)iTz _safe_repr:zpformat:)timer perf_counterr rprint)rr$rtt1t2t3s r _perfcheckr*sKKK ~VaVq\\:;fDA    BLLT1d+++    BIIf    B -b!!! *b2grc#NKd}t|dzdz}tdt|dD]W}|||dz}||z}||kr||z}tt||kr|rt|V|}U|}X|rt|VdSdS)Nrrr)rcrangerk)rrrnrrrrrs rrrsG v;;! a D 1c&kk1 % %   a1f~dN 99 Y E tI  % ' ' $7mm###GGGG7mmr__main__)Nr r N)r r Nr*)$r7 collectionsr dataclassesrgrsysrEtypesriorrR__all__rrr rrrr'r<r rr/rrfloatcomplexrGr0rr_r*rr4r9rrr6s4#""""""" $$$$$$ " " "TePduPPPPP"';;;;;>>>>>>>>>;;;;;;;;,,,,L=L=L=L=L=L=L=L=\9c5)UG"DDJJ011333    " zJLLLLLr