ÿØÿà 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ÿÙ Ec)a dZddlZddlmZddlZddlmZddlmZddlmZddlm Z ddlm Z dd lm Z dd lm Z dd lm Z dd lmZdd lmZddlZddlmZddlmZddlmZddlmZddlmZdZiddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;dd? Zid@eDZdAedBefdCZGdDdEejeZ GdFdGe Z!e!d(Z"e!dHZ#GdIdJej$Z%GdKdLej$ej&Z&GdMdNe Z'e'dOZ(e'dPZ)e'dQZ*e'dRZ+e'dSZ,e'dTZ-e'dUZ.e'dVZ/GdWdXejZ0GdYdZej$Z1Gd[d\e1Z2Gd]d^ej$Z3Gd_d`Z4edadbcZ5Gdddbe3Z6Gdedfe6Z7Gdgdhe6Z8Gdidje2Z9Gdkdle3Z:Gdmdne1Z;Gdodpe3Z<Gdqdre<Z=Gdsdte<Z>Gdudve2Z?Gdwdxej$Z@Gdydze2ZAGd{d|ej$ZBGd}d~e3ZCGdde2ZDGddeCZEdS)zACME protocol messages.N)Hashable)Any)Dict)Iterator)List)Mapping)MutableMapping)Optional)Tuple)Type)TypeVar) challenges)errors)fields)jws)utilzurn:ietf:params:acme:error:accountDoesNotExistz4The request specified an account that does not existalreadyRevokedzOThe request specified a certificate to be revoked that has already been revokedbadCSRz2The CSR is unacceptable (e.g., due to a short key)badNoncez1The client sent an unacceptable anti-replay nonce badPublicKeyz>The JWS was signed by a public key the server does not supportbadRevocationReasonz;The revocation reason provided is not allowed by the serverbadSignatureAlgorithmz@The JWS was signed with an algorithm the server does not supportcaaz\Certification Authority Authorization (CAA) records forbid the CA from issuing a certificatecompoundzBSpecific error conditions are indicated in the "subproblems" array connectionz?The server could not connect to the client to verify the domaindnszAThere was a problem with a DNS query during identifier validationdnssecz4The server could not validate a DNSSEC signed domainincorrectResponsez;Response received didn't match the challenge's requirements invalidEmailz1The provided email for a registration was invalidinvalidContactz$The provided contact URI was invalid malformedz!The request message was malformedrejectedIdentifierz9The server will not issue certificates for the identifierzLThe request attempted to finalize an order that is not ready to be finalizedz,There were too many requests of a given typez(The server experienced an internal errorz=The server experienced a TLS error during domain verificationz)The client lacks sufficient authorizationz@A contact URL for an account used an unsupported protocol schemez*The server could not resolve a domain namez'An identifier is of an unsupported typez,The server requires external account binding) orderNotReady rateLimitedserverInternaltls unauthorizedunsupportedContact unknownHostunsupportedIdentifierexternalAccountRequiredc*i|]\}}t|z|S) ERROR_PREFIX).0namedescs //usr/lib/python3/dist-packages/acme/messages.py r4<s0",$L4errreturncZt|tr|jt|jvSdS)z#Check if argument is an ACME error.NF) isinstanceErrortypr/)r6s r3 is_acme_errorr<As-#u'37#6sw&& 5r5ceZdZUdZdZeZeedfe d<deddffd Z defdZ e d eddfd Z defd Zd edefd ZdefdZxZS) _ConstantzACME constant.r1POSSIBLE_NAMESr1r7Ncjt||j|<||_dSN)super__init__r@r1selfr1 __class__s r3rDz_Constant.__init__Ms1 $(D! r5c|jSrBr?rFs r3to_partial_jsonz_Constant.to_partial_jsonRs yr5jobjcf||jvrtj|jd|j|S)Nz not recognized)r@joseDeserializationError__name__clsrKs r3 from_jsonz_Constant.from_jsonUs: s) ) )+s|,L,L,LMM M!$''r5c0|jjd|jdS)N())rGrOr1rIs r3__repr__z_Constant.__repr__[s .)88DI8888r5otherc\t|t|o|j|jkSrB)r9typer1)rFrWs r3__eq__z_Constant.__eq__^s&%d,,Hty1HHr5c8t|j|jfSrB)hashrGr1rIs r3__hash__z_Constant.__hash__asT^TY/000r5)rO __module__ __qualname____doc__ __slots__NotImplementedr@rstr__annotations__rDrJ classmethodrRrVrboolrZintr] __classcell__rGs@r3r>r>HsI-;NDk)*;;;ST (S([((([( 9#9999ICIDIIII1#11111111r5r>c2eZdZUdZiZeeefed<dS)IdentifierTypezACME identifier type.r@N rOr^r_r`r@rrcr>rdr.r5r3rkrkes1+-NDi(-----r5rkipcveZdZUdZejdejZee d<ejdZ e e d<dS) IdentifierzJACME identifier. :ivar IdentifierType typ: :ivar str value: rYdecoderr;valueN) rOr^r_r`rMfieldrkrRr;rdrrrcr.r5r3rorons^ %$*V^5MNNNCNNNG$$E3$$$$$r5roceZdZUdZejdddZeed<ejddZ eed<ejd dZ eed <ejd e j d Z ed ed <ejd dZeeded <ejdeeeefdedfdZedededdfdZedeefdZedeefdZdefdZdS)r:aOACME error. https://datatracker.ietf.org/doc/html/rfc7807 :ivar str typ: :ivar str title: :ivar str detail: :ivar Identifier identifier: :ivar tuple subproblems: An array of ACME Errors which may be present when the CA returns multiple errors related to the same request, `tuple` of `Error`. rYTz about:blank omitemptydefaultr;titlervdetail identifierrqrvro subproblems)r:.rrr7c4td|DS)Nc3JK|]}t|VdSrB)r:rR)r0 subproblems r3 z$Error.subproblems..s.IIZU__Z00IIIIIIr5tuplerrs r3r}zError.subproblemssII5IIIIIIr5codekwargsc `|tvrtd|zt|z}|dd|i|S)zCreate an Error instance with an ACME Error code. :str code: An ACME error code, like 'dnssec'. :kwargs: kwargs to pass to Error. z4The supplied code: %s is not a known ACME error coder;r.) ERROR_CODES ValueErrorr/)rQrrr;s r3 with_codezError.with_codesU { " "%'+,-- -T!s%%s%f%%%r5c@t|jS)zHardcoded error description based on its type. :returns: Description if standard ACME error or ``None``. :rtype: str )ERROR_TYPE_DESCRIPTIONSgetr;rIs r3 descriptionzError.descriptions'**48444r5czt|jddd}|tvr|SdS)zACME error code. Basically self.typ without the ERROR_PREFIX. :returns: error code if standard ACME code or ``None``. :rtype: str :)maxsplitN)rcr;rsplitr)rFrs r3rz Error.codes>48}}##C!#44R8 ;  Ktr5c.dd|j|j|j|jfD}|jrd|jjd|z}|jr*t|jdkr|jD] }|d|z } |S)Ns :: c3FK|]}||ddVdS)Nasciibackslashreplace)encode)r0parts r3rz Error.__str__..sC!!9= KK!3 4 4!!r5z Problem for z: r ) joinr;rrzrxdecoder{rrr}len)rFresultrs r3__str__z Error.__str__s!! Xt'dj A!!!!!"(  ? G=DO$9===FF   ,D$4 5 5 9 9". , , +z+++ r5N)rOr^r_r`rMrsr;rcrdrxrzrorRr{r r}r rqrrrrerpropertyrrrr.r5r3r:r:ys  tz&D-HHHCHHHGt444E3444$*X666FC666)3j2d*D*D*DJ&DDD1;MUY1Z1Z1ZK% -.ZZZJ4S#X/JE,4GJJJJ &S &C &G & & &[ &5Xc]555X5 hsm   X        r5r:c2eZdZUdZiZeeefed<dS)StatuszACME "status" field.r@Nrlr.r5r3rrs1+-NDi(-----r5runknownpending processingvalidinvalidrevokedready deactivatedceZdZdZGddejZdeee fddfdZ dede fd Z dede fd Z de ee ffd Zedeee fddfd ZdS) DirectoryzmDirectory. Directory resources must be accessed by the exact field name in RFC8555 (section 9.7.5). c:eZdZUdZejddZeed<ejddZ eed<ejddZ e eed<ejd dZ e ed <d ed d ffd Zed efdZd eeffd Zded efdZxZS)Directory.MetazDirectory Meta.termsOfServiceTry_terms_of_servicewebsite caaIdentitiescaa_identitiesr,external_account_requiredrr7Nc |fd|D}tjdi|dS)NcBi|]\}}||Sr._internal_namer0kvrFs r3r4z+Directory.Meta.__init__..s-KKKDAqd))!,,aKKKr5r.itemsrCrDrFrrGs` r3rDzDirectory.Meta.__init__sHKKKKFLLNNKKKF EGG  & &v & & & & &r5c|jS)zURL for the CA TOS)rrIs r3terms_of_servicezDirectory.Meta.terms_of_services ) )r5c#zKtD]}|dkr |ddn|VdS)NrrrC__iter__rEs r3rzDirectory.Meta.__iter__s\((** H H"&*="="=d122hh4GGGG H Hr5r1c|dkrd|zn|S)Nr_r.rFr1s r3rzDirectory.Meta._internal_names!%);!;!;3:: Er5)rOr^r_r`rMrsrrcrdrrrrrfrrDrrrrrrhris@r3Metarsc!+,<!M!M!M3MMM!tz)t<<<<<<$.DJ$$O$O$OS OOO*4$*5NZ^*_*_*_!4___ 'S 'T ' ' ' ' ' '  *c * * *  * Hhsm H H H H H H  Fs Fs F F F F F F F Fr5rrKr7Nc||_dSrB)_jobjrFrKs r3rDzDirectory.__init__s  r5r1cp ||S#t$r!}tt|d}~wwxYwrB)KeyErrorAttributeErrorrc)rFr1errors r3 __getattr__zDirectory.__getattr__sD -:  - - - U,, , -s 505c` |j|S#t$rtd|dwxYw)NzDirectory field "z " not found)rrrs r3 __getitem__zDirectory.__getitem__sN B:d# # B B B@t@@@AA A Bs -c8tj|jdS)Nc|SrBr.)rs r3z+Directory.to_partial_json..s1r5)rmap_keysrrIs r3rJzDirectory.to_partial_jsons}TZ555r5cz|j|di|d<||S)Nmeta)rrRpoprPs r3rRzDirectory.from_json s7x))$((62*>*>??V s4yyr5)rOr^r_r`rMJSONObjectWithFieldsrrrcrrDrrrrJrer rRr.r5r3rrs" FFFFFt(FFF2WS#X.4------ BBBBBB 6c3h6666^CH5+[r5rc>eZdZUdZejdZded<dS)ResourcezOACME Resource. :ivar acme.messages.ResourceBody body: Resource body. body ResourceBodyN)rOr^r_r`rMrsrrdr.r5r3rrs: &4:f--D.-----r5rc>eZdZUdZejdZeed<dS)ResourceWithURIzKACME Resource with URI. :ivar str uri: Location of the resource. uriN) rOr^r_r`rMrsrrcrdr.r5r3rrs: tz%  C     r5rceZdZdZdS)rzACME Resource Body.NrOr^r_r`r.r5r3rr!sr5rc XeZdZdZedejdededede ee ff dZ dS) ExternalAccountBindingzACME External Account Bindingaccount_public_keykidhmac_key directoryr7ctj|}tj|}|d}tj |tj |tj j d||}|S)zLCreate External Account Binding Resource from contact details, kid and hmac. newAccount)keyN)jsondumpsrJrrMb64 b64decoderJWSsignjwkJWKOctjwaHS256) rQrrrrkey_jsondecoded_hmac_keyurleabs r3 from_dataz ExternalAccountBinding.from_data(s :0@@BBCCJJLL8--h77 %gll8TX__9I_%J%J8>4%%""$$$r5N) rOr^r_r`rerMJWKrcrrrrr.r5r3rr%sg'' %48 %# % %& %+/S> % % %[ % % %r5rGenericRegistration Registration)boundceZdZUdZejddejjZeje d<ejdddZ e e dfe d<ejd d Z e e d <ejd d Zee d <ejd d Zee d <ejdd Zee d<ejdd Zee efe d<dZdZe d$deedee dee deee efdedef dZdeddffd Zde de e dffdZdee efdee effdZdee efffd Z dee efffd! Z!e"de e dffd"Z#e"de e dffd#Z$xZ%S)%rzRegistration Resource Body. :ivar jose.JWK key: Public key. :ivar tuple contact: Contact information following ACME spec, `tuple` of `str`. :ivar str agreement: rTrvrqcontactr.ru. agreementrystatustermsOfServiceAgreedterms_of_service_agreedonlyReturnExistingonly_return_existingexternalAccountBindingexternal_account_bindingztel:zmailto:NrQphoneemailrr7c Fd|v}t|dd}||j|z|4|fd|dD|s|rt ||d<|r||d<di|S)a Create registration resource from contact details. The `contact` keyword being passed to a Registration object is meaningful, so this function represents empty iterables in its kwargs by passing on an empty `tuple`. rr.Nc$g|] }j|z Sr.) email_prefix)r0mailrQs r3 z*Registration.from_data..js!QQQC,t3QQQr5,r )listrappend phone_prefixextendsplitr)rQr r r rcontact_provideddetailss` r3rzRegistration.from_dataUs%.vzz)R0011   NN3+e3 4 4 4   NNQQQQ C@P@PQQQ R R R  /& / %gF9  # J1IF- .s}}V}}r5c d|vr$|dt|ddtjdi|dS)z;Note if the user provides a value for the `contact` member.rN _add_contactTr.)object __setattr__rCrDrs r3rDzRegistration.__init__vsS   6)#4#@   t^T : : :""6"""""r5prefixcDtfd|jDS)Nc3pK|]0}||tdV1dSrB) startswithr)r0rzrs r3rz/Registration._filter_contact..~sZ**%+  ((* 3v;;<< ******r5)rr)rFrs `r3_filter_contactzRegistration._filter_contact}s=****/3|***** *r5rKcXt|ddr|d|d<|S)a The `contact` member of Registration objects should not be required when de-serializing (as it would be if the Fields' `omitempty` flag were `False`), but it should be included in serializations if it was provided. :param jobj: Dictionary containing this Registrations' data :type jobj: dict :returns: Dictionary containing Registrations data to transmit to the server :rtype: dict rFr)getattrrrs r3_add_contact_if_appropriatez(Registration._add_contact_if_appropriates2 4 / / 5"kk)44DO r5cnt}||S)z2Modify josepy.JSONDeserializable.to_partial_json())rCrJr%rFrKrGs r3rJzRegistration.to_partial_jsons,ww&&((//555r5cnt}||S)z;Modify josepy.JSONObjectWithFields.fields_to_partial_json())rCfields_to_partial_jsonr%r's r3r)z#Registration.fields_to_partial_jsons,ww--////555r5c6||jS)z*All phones found in the ``contact`` field.)r"rrIs r3phoneszRegistration.phones##D$5666r5c6||jS)z*All emails found in the ``contact`` field.)r"rrIs r3emailszRegistration.emailsr,r5)NNN)&rOr^r_r`rMrsrrRrrdrr rcrrrrrfrr rrrrrer rr rrDr"r%rJr)rr+r.rhris@r3rr;sDJudh>PQQQCQQQ *tz)tRPPPGU38_PPPTZ t<<"6c3h666666 6S#X666666 7c3h777X77c3h777X77777r5ceZdZdZdS)NewRegistrationzNew registration.Nrr.r5r3r0r0sr5r0ceZdZdZdS)UpdateRegistrationzUpdate registration.Nrr.r5r3r2r2sr5r2ceZdZUdZejdejZee d<ejddZ e e d<ejddZ e e d<dS) RegistrationResourcezRegistration Resource. :ivar acme.messages.Registration body: :ivar str new_authzr_uri: Deprecated. Do not use. :ivar str terms_of_service: URL for the CA TOS. rrpnew_authzr_uriTryrN) rOr^r_r`rMrsrrRrrdr5rcrr.r5r3r4r4s$FL4JKKKD,KKK$$*%5FFFNCFFF&DJ'9TJJJcJJJJJr5r4ceZdZUdZdZejdddZee d<ejde j de Z e e d<ejd d Zeje d <ejd ej dd Zee d <d eddffd Zdedeffd Zdeeefffd Zedeeefdeeefffd ZedefdZdedefdZdeeffd Z dedefdZ!xZ"S) ChallengeBodya>Challenge Resource Body. .. todo:: Confusingly, this has a similar name to `.challenges.Challenge`, as well as `.achallenges.AnnotatedChallenge`. Please use names such as ``challb`` to distinguish instances of this class from ``achall``. :ivar acme.challenges.Challenge: Wrapped challenge. Conveniently, all challenge fields are proxied, i.e. you can call ``challb.x`` to get ``challb.chall.x`` contents. :ivar acme.messages.Status status: :ivar datetime.datetime validated: :ivar messages.Error error: )challrTNru_urlr)rqrvrw validatedryrrr7c |fd|D}tjdi|dS)NcBi|]\}}||Sr.rrs r3r4z*ChallengeBody.__init__..s-GGG1$%%a((!GGGr5r.rrs` r3rDzChallengeBody.__init__sHGGGG GGG""6"""""r5r1clt||SrB)rCrrrEs r3rzChallengeBody.encodes'ww~~d11$77888r5ct}||j|SrB)rCrJupdater8r's r3rJzChallengeBody.to_partial_jsons=ww&&(( DJ..00111 r5rKct|}tj||d<|S)Nr8)rCfields_from_jsonr ChallengerR)rQrK jobj_fieldsrGs r3rAzChallengeBody.fields_from_jsons;gg..t44 )3==dCC Gr5c|jS)zThe URL of this challenge.)r9rIs r3rzChallengeBody.uris yr5c,t|j|SrB)r$r8rs r3rzChallengeBody.__getattr__stz4(((r5c#jKtD]}|dkrdn|VdS)Nr9rrrEs r3rzChallengeBody.__iter__sMGG$$&& 4 4D6>>%%t 3 3 3 3 4 4r5c|dkrdn|S)Nrr9r.rs r3rzChallengeBody._internal_namesvvD0r5)#rOr^r_r`rarMrsr9rcrdrrRSTATUS_PENDINGrrrfc3339r:datetimer:rrrDrrrJrerrArrrrrrrhris@r3r7r7sL I  5D$???D#???TZ&2B"&@@@FF@@@#16>+#N#N#NIx NNN4:gu!%t555E5555########9393999999c3h GCH$5$sCx.[ SX))))))4(3-444444 131311111111r5r7ceZdZUdZejdejZee d<ejdZ e e d<e de fdZ dS)ChallengeResourcezChallenge Resource. :ivar acme.messages.ChallengeBody body: :ivar str authzr_uri: URI found in the 'up' ``Link`` header. rrp authzr_urir7c|jjS)zThe URL of the challenge body.)rrrIs r3rzChallengeResource.urisy}r5N)rOr^r_r`rMrsr7rRrrdrMrcrrr.r5r3rLrLs %$*V]5LMMMD-MMM dj..J... SXr5rLc~eZdZUdZejdejdZee d<ejddZ e e e d<ejdde jZe e d<ejd dZeje d <ejd dZee d <e jd e eeefd ee d ffdZ dS) AuthorizationzAuthorization Resource Body. :ivar acme.messages.Identifier identifier: :ivar list challenges: `list` of `.ChallengeBody` :ivar acme.messages.Status status: :ivar datetime.datetime expires: r{Tr|rryrrexpireswildcardrrr7.c4td|DS)Nc3JK|]}t|VdSrB)r7rR)r0r8s r3rz+Authorization.challenges..&s0GG],,U33GGGGGGr5rrs r3rzAuthorization.challenges$sGGGGGGGGr5N)rOr^r_r`rMrsrorRr{rdrrr7rrrrIrQrJrRrfrqrrcrr r.r5r3rPrPs-(TZ j>R^bcccJ ccc&0dj&N&N&NJ]#NNNTZD&BRSSSFFSSS "0 T!J!J!JGX JJJTZ d;;;Hd;;;H$tCH~.H59K3LHHHHHHr5rPceZdZdZdS)NewAuthorizationzNew authorization.Nrr.r5r3rVrV)sr5rVceZdZdZdS)UpdateAuthorizationzUpdate authorization.Nrr.r5r3rXrX-sr5rXczeZdZUdZejdejZee d<ejddZ e e d<dS)AuthorizationResourcez~Authorization Resource. :ivar acme.messages.Authorization body: :ivar str new_cert_uri: Deprecated. Do not use. rrp new_cert_uriTryN) rOr^r_r`rMrsrPrRrrdr[rcr.r5r3rZrZ1sc %$*V]5LMMMD-MMM" >TBBBL#BBBBBr5rZcbeZdZUdZejdejejZej e d<dS)CertificateRequestz~ACME newOrder request. :ivar jose.ComparableX509 csr: `OpenSSL.crypto.X509Req` wrapped in `.ComparableX509` csrrqencoderN) rOr^r_r`rMrs decode_csr encode_csrr^ComparableX509rdr.r5r3r]r]<sJ *tz%RVRabbbC bbbbbr5r]cxeZdZUdZejdZeed<ejdZ e e dfed<dS)CertificateResourceaCertificate Resource. :ivar josepy.util.ComparableX509 body: `OpenSSL.crypto.X509` wrapped in `.ComparableX509` :ivar str cert_chain_uri: URI found in the 'up' ``Link`` header :ivar tuple authzrs: `tuple` of `AuthorizationResource`. cert_chain_uriauthzrs.N) rOr^r_r`rMrsrfrcrdrgr rZr.r5r3rereFsb%$*%566NC6661;I1F1FGU(#- .FFFFFr5receZdZUdZejdejejZej e d<ejdZ e e d<dS) RevocationzRevocation message. :ivar jose.ComparableX509 certificate: `OpenSSL.crypto.X509` wrapped in `jose.ComparableX509` certificater_reasonN) rOr^r_r`rMrs decode_cert encode_certrjrcrdrkrgr.r5r3ririSsy (2tzt/9I(K(K(KK$KKK$*X&&FC&&&&&r5riceZdZUdZejddZeee d<ejde j dZ e e d<ejddZ eee d<ejddZee d<ejd dZee d <ejd dZeje d <ejd dej Zee d <ejd eeeefdeedffdZdS)Ordera_Order Resource Body. :ivar identifiers: List of identifiers for the certificate. :vartype identifiers: `list` of `.Identifier` :ivar acme.messages.Status status: :ivar authorizations: URLs of authorizations. :vartype authorizations: `list` of `str` :ivar str certificate: URL to download certificate as a fullchain PEM. :ivar str finalize: URL to POST to to request issuance once all authorizations have "valid" status. :ivar datetime.datetime expires: When the order expires. :ivar ~.Error error: Any error that occurred during finalization, if applicable. identifiersTryrr|authorizationsrjfinalizerQrrrrr7.c4td|DS)Nc3JK|]}t|VdSrB)rorR)r0r{s r3rz$Order.identifiers..ys0NN*Z))*55NNNNNNr5rrs r3rpzOrder.identifierswsNNNNNNNNr5N)rOr^r_r`rMrsrprrordrrRrrqrcrjrrrrIrQrJr:rrqrrr r.r5r3roro_so  %/DJ}$M$M$MKj!MMMTZ&2BdSSSFFSSS * +;t L L LNDILLL!tz-4@@@K@@@DJzT:::Hc:::!/ T!J!J!JGX JJJ4:guOOOE5OOOO4S#X/OE*c/4JOOOOOOr5roceZdZUdZejdejZee d<ejddZ e e d<ejdZ e ee d<ejddZee d<ejd dZe ee d <d S) OrderResourceaOrder Resource. :ivar acme.messages.Order body: :ivar bytes csr_pem: The CSR this Order will be finalized with. :ivar authorizations: Fully-fetched AuthorizationResource objects. :vartype authorizations: `list` of `acme.messages.AuthorizationResource` :ivar str fullchain_pem: The fetched contents of the certificate URL produced once the order was finalized, if it's present. :ivar alternative_fullchains_pem: The fetched contents of alternative certificate chain URLs produced once the order was finalized, if present and requested during finalization. :vartype alternative_fullchains_pem: `list` of `str` rrpcsr_pemTryrq fullchain_pemalternative_fullchains_pemN)rOr^r_r`rMrsrorRrrdrwbytesrqrrZrxrcryr.r5r3rvrv|s  $*VU_===D%===TZ T:::GU:::2<$*=M2N2NND./NNN#OtDDDM3DDD,6DJ7SAE-G-G-GS GGGGGr5rvceZdZdZdS)NewOrderz New order.Nrr.r5r3r|r|sr5r|)Fr`rJcollections.abcrrtypingrrrrrr r r r r josepyrMacmerrrrrr/rrr BaseExceptionrfr<JSONDeSerializabler>rkIDENTIFIER_FQDN IDENTIFIER_IPrror:rSTATUS_UNKNOWNrHSTATUS_PROCESSING STATUS_VALIDSTATUS_INVALIDSTATUS_REVOKED STATUS_READYSTATUS_DEACTIVATEDrrrrrrrr0r2r4r7rLrPrVrXrZr]rerirorvr|r.r5r3rs!$$$$$$ !!!!!!- Q B  C  T X_  T N D X!$G%&<'(4)*U+,dA@ J?\?FM= B0;0A0A0C0C }11111'111:.....Y... !.''t$$ %%%%%*%%%MMMMMD %v|MMM`.....Y...  "" ""F<((vg  "" ""vg VM**44444'444n.....t(...!!!!!h!!!4,%%%%%%%%&g3>JJJj7j7j7j7j7<j7j7j7Zl K K K K K? K K K>1>1>1>1>1L>1>1>1B         HHHHHLHHH6}     -   CCCCCOCCCccccc2ccc G G G G G/ G G G ' ' ' ' '* ' ' 'OOOOOLOOO:GGGGGOGGG,ur5