Ë —òaîœÏ›¡ã óÖ—ddlZddlZddlZddlZddlZddlZddlZddlmZm Z m Z m Z m Z m Z mZmZmZmZddlmZmZmZmZej0d«Zej4dddk\r ddlmZmZnej:r ddlmZmZn ddlmZmZ e jBZ!Gd„de$«Z%Gd„ded¬«Z&hd£Z'hd£Z(dhZ)de*de e*fd„Z+de e*de e*e*ffd„Z,dejZj\dee/e*fde*fd„Z0idd“d d!“d"d#“d$d$“d%d&“d'd(“d)d)“d*d+“d,d,“d-d-“d.d.“d/d0“d1d2“d3d3“d4d4“d5d6“d7d8“dd9d:d;dd?d@dAdBdCœ ¥Z1e1je«D��cic]\}}||“Œ c}}Z3dee/e*fdee&e e*e e*fffdD„Z4e5«Z6gdE¢Z7edEZ8e9gdF¢«Z:GdG„dHe e«Z;GdI„dJ«ZwxYw#e"$rGd „de#«Z!Y�ŒHwxYwcc}}w)KéN) ÚAnyÚCallableÚDictÚGenericÚListÚOptionalÚTupleÚTypeÚUnionÚcasté)Ú requirementsÚ specifiersÚutilsÚversionÚTé)éé)ÚLiteralÚ TypedDictcó—eZdZd„Zy)rcó—y©N©©Ú_argsÚ_kwargss ú7/usr/lib/python3.12/site-packages/packaging/metadata.pyÚ__init_subclass__zLiteral.__init_subclass__#ó€ØóN©Ú__name__Ú __module__Ú __qualname__r rr"rrr"ó„ór"rcó—eZdZd„Zy)rcó—yrrrs rr zTypedDict.__init_subclass__'r!r"Nr#rr"rrr&r'r"rcóR—eZdZUdZeed<eeed<dedeeddfd„Zdefd„Z y)ÚExceptionGroupzËA minimal implementation of :external:exc:`ExceptionGroup` from Python 3.11. If :external:exc:`ExceptionGroup` is already defined by Python itself, that version is used instead. ÚmessageÚ exceptionsÚreturnNcó —||_||_yr)r,r-)Úselfr,r-s rÚ__init__zExceptionGroup.__init__9s€Ø"ˆDŒLØ(ˆD�Or"cóh—|jj›d|j›d|j›d�S)NÚ(z, Ú))Ú __class__r$r,r-)r0s rÚ__repr__zExceptionGroup.__repr__=s1€Ø—n‘n×-Ñ-Ð.¨a°· ± Ð/?¸rÀ$Ç/Á/ÐATÐTUÐVÐ Vr") r$r%r&Ú__doc__ÚstrÚ__annotations__rÚ Exceptionr1r6rr"rr+r+/sD…ñ ð ‹ Ø˜‘OÓ#ð ) Cð )°T¸)±_ð )Èó )ð W˜cô Wr"r+có>‡—eZdZUdZeed< dededdfˆfd„ ZˆxZS)ÚInvalidMetadataz'A metadata field contains invalid data.Úfieldr,r.Ncó2•—||_t‰|� |«yr)r=Úsuperr1)r0r=r,r5s €rr1zInvalidMetadata.__init__Gsø€ØˆŒ Ü ‰Ñ˜Õ!r")r$r%r&r7r8r9r1Ú __classcell__)r5s@rr<r<As-ø…Ù1à ƒJØ;ð"˜cð"¨Cð"°D÷"ñ"r"r<có‚—eZdZUdZeed<eed<eed<eeed<eed<eed<eeed<eed <eed <eed <eed <eeed <eed<eeed<eeed<eeed<eeed<eed<eed<eeed<eeed<eeed<eed<eeed<eeefed<eed<eeed<eeed<y)Ú RawMetadataa¿A dictionary of raw core metadata. Each field in core metadata maps to a key of this dictionary (when data is provided). The key is lower-case and underscores are used instead of dashes compared to the equivalent core metadata field. Any core metadata field that can be specified multiple times or can hold multiple values in a single field have a key with a plural name. See :class:`Metadata` whose attributes match the keys of this dictionary. Core metadata fields that can be specified multiple times are stored as a list or dict depending on which is appropriate for the field. Any fields which hold multiple values in a single field are stored as a list. Úmetadata_versionÚnamerÚ platformsÚsummaryÚ descriptionÚkeywordsÚ home_pageÚauthorÚ author_emailÚlicenseÚsupported_platformsÚ download_urlÚ classifiersÚrequiresÚprovidesÚ obsoletesÚ maintainerÚmaintainer_emailÚ requires_distÚ provides_distÚobsoletes_distÚrequires_pythonÚrequires_externalÚ project_urlsÚdescription_content_typeÚprovides_extraÚdynamicN)r$r%r&r7r8r9rrrr"rrBrBPsî…ñ ð ÓØ ƒIØ ƒLØ�C‰yÓØ ƒLØÓØ�3‰iÓØƒNØ ƒKØÓØ ƒLð˜c™Ó"ØÓØ�c‘ÓØ�3‰iÓØ�3‰iÓØ�C‰yÓðƒOØÓؘ‘9ÓØ˜‘9ÓØ˜‘IÓØÓØ˜C‘yÓ Ø�s˜C�x‘.Ó ð"Ó!ؘ‘IÓð�#‰YÔr"rBF)Útotal>rDrJrLrFrrIrSrGrKrNrXrTrCr[> r]rQrPrRrErOrVrUrWr\rYrMrZÚdatar.cóf—|jd«D�cgc]}|j«‘Œc}Scc}w)zCSplit a string of comma-separate keyboards into a list of keywords.Ú,)ÚsplitÚstrip)r_Úks rÚ_parse_keywordsre¹s(€à#Ÿz™z¨#œÓ /™˜!ˆA�G‰G�I˜Ñ /Ð/ùÒ /s”.c ó—i}|D]s}|jdd«D�cgc]}|j«‘Œ}}|jdgtddt |«z «z«|\}}||vr t d«‚|||<Œu|Scc}w)z?Parse a list of label/URL string pairings separated by a comma.rar Úrrz duplicate labels in project urls)rbrcÚextendÚmaxÚlenÚKeyError)r_ÚurlsÚpairÚpÚpartsÚlabelÚurls rÚ_parse_project_urlsrr¾s“€à €DÛˆð$%)§J¡J¨s°AÔ$6Ó7Ñ$6˜q�—‘•Ð$6ˆÐ7Ø � ‰ �b�TœS  A¬¨E« ¡NÓ3Ñ4Ô5ð‰ ˆˆsØ �D‰=ôÐ=Ó>Ð >؈ˆUŠ ðAðD €Kùò!8sœA=ÚmsgÚsourcecóÀ—t|t«r|j«}|S|jd¬«} |jdd«S#t$r t d«‚wxYw)zGet the body of the message.T©ÚdecodeÚutf8Ústrictzpayload in an invalid encoding)Ú isinstancer8Ú get_payloadrwÚUnicodeDecodeErrorÚ ValueError)rsrtÚpayloadÚbpayloads rÚ _get_payloadr€æsb€ô�&œ#ÔØ—‘Ó(ˆØˆðŸ/™/°˜/Ó6ˆð ?Ø—?‘? 6¨8Ó4Ð 4øÜ!ò ?ÜÐ=Ó>Ð >ð ?ús ¶AÁArJz author-emailrKÚ classifierrOrGzdescription-content-typer[z download-urlrNr]z home-pagerIrHrLrSzmaintainer-emailrTúmetadata-versionrCrDrRzobsoletes-distrWÚplatformrErQrVr\rPrUrYrXrFrMr) z project-urlrQz provides-distzprovides-extrarPz requires-distzrequires-externalzrequires-pythonrFzsupported-platformrc óæ—i}i}t|t«rHtjj tj j ¬«j|«}nGtjjtj j ¬«j|«}t|j««D�]´}|j«}|j|«xsg}g}d}|D]ì}t|tjjtf«sJ‚t|tjj«r‰g} tjj!|«D]-\} } | j#dd«d} | j'| | f«Œ/|j'ttjj)| «««ŒÜ|j'|«Œî|s|||<�Œ't*j-|«} | €|||<�ŒE| t.vrt1|«dk(r |d|| <�Œe| t2vr||| <�Œt| d k(r!t1|«dk(rt5|d«|| <�Œš| d k(r t7|«|| <�Œ°|||<�Œ· t;||«} | rfd |vrCt=t|j?d ««}|jAd g«jC|| g«nd |vr|d j'| «n| |d < t=tJ|«|fS#t$$rd} d}Y�Œ‘wxYw#t8$r |||<Y�ŒdwxYw#tD$rB|jAd g«j'|jGt|tH«¬ ««YŒ…wxYw) a Parse a distribution's metadata stored as email headers (e.g. from ``METADATA``). This function returns a two-item tuple of dicts. The first dict is of recognized fields from the core metadata specification. Fields that can be parsed and translated into Python's built-in types are converted appropriately. All other fields are left as-is. Fields that are allowed to appear multiple times are stored as lists. The second dict contains all other fields from the metadata. This includes any unrecognized fields. It also includes any fields which are expected to be parsed into a built-in type but were not formatted appropriately. Finally, any fields that are expected to appear only once but are repeated are included in this dict. )ÚpolicyTrxryÚlatin1Fr rrHrZrGrv)&rzr8ÚemailÚparserÚParserr…Úcompat32ÚparsestrÚ BytesParserÚ parsebytesÚ frozensetÚkeysÚlowerÚget_allÚheaderÚHeaderÚ decode_headerrwr|ÚappendÚ make_headerÚ_EMAIL_TO_RAW_MAPPINGÚgetÚ_STRING_FIELDSrjÚ _LIST_FIELDSrerrrkr€r ÚpopÚ setdefaultrhr}r{ÚbytesrB)r_ÚrawÚunparsedÚparsedrDÚheadersÚvalueÚvalid_encodingÚhÚchunksÚbinÚencodingÚraw_namer~Údescription_headers rÚ parse_emailrª$s?€ð =?€CØ%'€Hä�$œÔÜ—‘×$Ñ$¬E¯L©L×,AÑ,AÐ$ÓB×KÑKÈDÓQ‰ä—‘×)Ñ)´·±×1FÑ1FÐ)ÓG×RÑRÐSWÓXˆô ˜&Ÿ+™+›-×(ˆð�z‰z‹|ˆð —.‘. Ó&Ò,¨"ˆðˆðˆÛˆAô˜a¤%§,¡,×"5Ñ"5´sÐ!;Ô<Ð <Ð<ô˜!œUŸ\™\×0Ñ0Ô1ð=?�Ü%*§\¡\×%?Ñ%?ÀÖ%B‘M�C˜ð*ØŸ ™  6¨8Ô4ð $*˜Ø—M‘M 3¨ /Õ2ð&Cð— ‘ œS¤§¡×!9Ñ!9¸&Ó!AÓBÕCð— ‘ ˜Q•ðGñPØ"ˆH�T‰NÙ ä(×,Ñ,¨TÓ2ˆØ Ð ð#ˆH�T‰NÙ ð ”~Ñ %¬#¨e«*¸ª/Ø! !™HˆC�‹MðœÑ %Ø!ˆC�‹Mð ˜Ò #¬¨E« °aªÜ+¨E°!©HÓ5ˆC�‹Mð˜Ò 'ð 'Ü 3°EÓ :��H“ ð #ˆH�T‹Nði)ðt-ܘv tÓ,ˆñ ð Ñ#Ü%)¬#¨s¯w©w°}Ó/EÓ%FÐ"Ø×#Ñ# M°2Ó6×=Ñ=Ø'¨Ð1õð (Ñ*ؘÑ'×.Ñ.¨wÕ7à%,��MÒ"ô ” ˜SÓ ! 8Ð +Ð+øôQ.ò/à#+˜Ø).›ð/ûôJò 'Ø!&�˜”ð 'ûô ò Ø×јM¨2Ó.×5Ñ5Ø × Ñ ¤j°´uÓ&=Ð Ó >ö ð ús7Å'K<ÉLÉ6 L%Ë< L Ì L ÌL"Ì!L"Ì%AM0Í/M0)ú1.0ú1.1ú1.2ú2.1ú2.2z2.3)rCrDrcó–—eZdZUdZeed<eed<eed<ddœdeddfd „Zd d deddfd „Zd d d e d de fd„Z ddede e defd„Zdedefd„Zdedefd„Zdedej&fd„Zdedefd„Zdedefd„Zdeedeefd„Zdeedeej4fd„Zdedej:fd„Zdeedeej@fd„Z!y)Ú _ValidatoravValidate a metadata field. All _process_*() methods correspond to a core metadata field. The method is called with the field's raw value. If the raw value is valid it is returned in its "enriched" form (e.g. ``version.Version`` for the ``Version`` field). If the raw value is invalid, :exc:`InvalidMetadata` is raised (with a cause as appropriate). rDr¨Úaddedr«©r²r.Ncó—||_yrr³)r0r²s rr1z_Validator.__init__ìs €ð ˆ� r"Ú_ownerÚMetadatacó.—||_t||_yr)rDÚ_RAW_TO_EMAIL_MAPPINGr¨)r0rµrDs rÚ __set_name__z_Validator.__set_name__ós€ØˆŒ Ü-¨dÑ3ˆ� r"ÚinstancecóÜ—|j} |j|j} t|d|j›�«}||«}|||j< |j|j=tt|«S#t$rD|jtvrd}n,|jt vrg}n|jt vri}nJ‚YŒ¥wxYw#t$rYŒ’wxYw#t$rYŒzwxYw)NrgÚ _process_) Ú__dict__Ú_rawrDrkr™ršÚ _DICT_FIELDSÚgetattrÚAttributeErrorr r)r0rºrµÚcacher¢Ú converters rÚ__get__z_Validator.__get__÷sï€ð×!Ñ!ˆð Ø—M‘M $§)¡)Ñ,ˆEð %Ü,3°D¸IÀdÇiÁiÀ[Ð:QÓ,RˆIñ˜eÓ$ˆEà ˆˆd�i‰iÑð Ø— ‘ ˜dŸi™iÐ(ô”A�u‹~Ðøô/ò Ø�y‰yœNÑ*ؑؗ‘œlÑ*ؑؗ‘œlÑ*Ø‘à�uùð ûôò Ù ð ûôò Ù ð ús5ŽB¨CÁCÂA C à C à CÃCà C+Ã*C+rsÚcausec óˆ—t|j|jdt|j«i««}||_|S)Nr=)r<r¨Ú format_mapÚreprÚ __cause__)r0rsrÅÚexcs rÚ_invalid_metadataz_Validator._invalid_metadatas<€ôØ �M‰M˜3Ÿ>™>¨7´D¸¿¹Ó4GÐ*HÓIó ˆðˆŒ ؈ r"r¢cóZ—|tvr|j|›d�«‚tt|«S)Nz is not a valid metadata version)Ú_VALID_METADATA_VERSIONSrËr Ú_MetadataVersion©r0r¢s rÚ_process_metadata_versionz$_Validator._process_metadata_version s2€à Ô0Ñ 0Ø×(Ñ(¨E¨9Ð4TÐ)UÓVÐ VÜÔ$ eÓ,Ð,r"có¾—|s|jd«‚ tj|d¬«|S#tj$r}|j|›d�|¬«‚d}~wwxYw)Nú{field} is a required fieldT©Úvalidateú is invalid for {field}©rÅ)rËrÚcanonicalize_nameÚ InvalidName©r0r¢rÊs rÚ _process_namez_Validator._process_name&sp€ÙØ×(Ñ(Ð)FÓGÐ Gð Ü × #Ñ # E°DÕ 9ð ˆLøô × Ñ ò Ø×(Ñ(Ø�)Ð4Ð5¸Sð)óð ûð ús•.®AÁAÁAcó¶—|s|jd«‚ tj|«S#tj$r}|j|›d�|¬«‚d}~wwxYw)NrÒrÕrÖ)rËÚversion_moduleÚparseÚInvalidVersionrÙs rÚ_process_versionz_Validator._process_version3sh€ÙØ×(Ñ(Ð)FÓGÐ Gð Ü!×'Ñ'¨Ó.Ð .øÜ×,Ñ,ò Ø×(Ñ(Ø�)Ð4Ð5¸Sð)óð ûð ús•*ªA½AÁAcó0—d|vr|jd«‚|S)z%Check the field contains no newlines.Ú z{field} must be a single line)rËrÏs rÚ_process_summaryz_Validator._process_summary=s €à �5‰=Ø×(Ñ(Ð)HÓIÐ I؈ r"có—hd£}tjj«}||d<|j«j «|dj }}||vs||j «vr |j dt|«›d|›�«‚|jdd«}|dk7r|j dt|«›�«‚dd h}|jd d«}|d k(r$||vr |j d t|«›d|›�«‚|S) N>ú text/plainú text/x-rstú text/markdownz content-typez{field} must be one of z, not ÚcharsetzUTF-8z0{field} can only specify the UTF-8 charset, not ÚGFMÚ CommonMarkÚvariantræz(valid Markdown variants for {field} are ) r‡r,Ú EmailMessageÚget_content_typer�ÚparamsrËÚlistr˜) r0r¢Ú content_typesr,Ú content_typeÚ parametersrçÚmarkdown_variantsrês rÚ!_process_description_content_typez,_Validator._process_description_content_typeCs/€ÚEˆ Ü—-‘-×,Ñ,Ó.ˆØ"'ˆ�Ñð × $Ñ $Ó &× ,Ñ ,Ó .Ø �NÑ #× *Ñ *ð!ˆ ð ˜}Ñ ,° ÀEÇKÁKÃMÑ0QØ×(Ñ(Ø+¬D°Ó,?Ð+@ÀÀuÀiÐPóð ð—.‘. ¨GÓ4ˆØ �gÒ Ø×(Ñ(ØDÄTÈ'Ã]ÀOÐTóð ð# LÐ1ÐØ—.‘. ¨EÓ2ˆØ ˜?Ò *¨wÐ>OÑ/OØ×(Ñ(Ø<¼TÐBSÓ=TÐrDrr‚z" is not allowed as a dynamic fieldz is not a valid dynamic field)Úmapr8r�rËr—rî)r0r¢Ú dynamic_fields rÚ_process_dynamicz_Validator._process_dynamiccsz€Ü ¤§¡¨EÖ2ˆMØÐ GÑGØ×,Ñ,Ø�iÐAÐBóððÔ&;Ò;Ø×,Ñ,°¨yÐ8UÐ-VÓWÐWð 3ô”CœŸ ™  5Ó)Ó*Ð*r"cóÊ—g} |D](}|jtj|d¬««Œ* |S#tj$r}|j ›d�|¬«‚d}~wwxYw)NTrÓrÕrÖ)r•rr×rØrË)r0r¢Únormalized_namesrDrÊs rÚ_process_provides_extraz"_Validator._process_provides_extramsy€ðÐð $Û�Ø ×'Ñ'¬×(?Ñ(?ÀÈtÔ(TÕUñð$Ð #øô × Ñ ò Ø×(Ñ(Ø�(Ð3Ð4¸Cð)óð ûð ús„-4´A"ÁAÁA"có�— tj|«S#tj$r}|j|›d�|¬«‚d}~wwxYw©NrÕrÖ)rÚ SpecifierSetÚInvalidSpecifierrËrÙs rÚ_process_requires_pythonz#_Validator._process_requires_python|sS€ð Ü×*Ñ*¨5Ó1Ð 1øÜ×*Ñ*ò Ø×(Ñ(Ø�)Ð4Ð5¸Sð)óð ûð ús‚—AªAÁAcóÆ—g} |D]&}|jtj|««Œ( |S#tj$r}|j ›d�|¬«‚d}~wwxYwrü)r•rÚ RequirementÚInvalidRequirementrË)r0r¢ÚreqsÚreqrÊs rÚ_process_requires_distz!_Validator._process_requires_dist„so€ðˆð Û�Ø— ‘ œL×4Ñ4°SÓ9Õ:ñð ˆKøô×.Ñ.ò YØ×(Ñ(¨C¨7Ð2KÐ)LÐTWÐ(ÓXÐ Xûð Yús„+2²A ÁAÁA r)"r$r%r&r7r8r9rÎr1r¹r rrÄrr:r<rËrÐrÚrÜÚVersionrßrârórr÷rÚNormalizedNamerúrrýrÿrrrrr"rr±r±Þs…ñð ƒI؃MØ Óð #(òð ðð ó ð4 :ð4°Sð4¸Tó4ð  ð°D¸Ñ4DðÈóðB6:ñØðØ'¨ Ñ2ðà óð-¨sð-Ð7Gó-ð  3ð ¨3ó ð cð¨n×.DÑ.Dóð cð¨cóð °sð¸sóð@+ d¨3¡ið+°D¸±Ió+ð $à�C‰yð $ð ˆe×"Ñ"Ñ #ó $ð¨cð°j×6MÑ6Móð à�C‰yð ð ˆl×&Ñ&Ñ 'ô r"r±cóØ—eZdZUdZeed<eddœdededdfd„«Zeddœde e e fdeddfd „«Z e «Ze eed < e «Ze e ed < e «Ze ej&ed < e d ¬«Ze ee ed< e «Ze ee ed< e d¬«Ze ee ed< e «Ze e ed< e «Ze e ed< e d¬«Ze e ed< e «Ze ee ed< e «Ze e ed< e d¬«Ze e ed< e «Ze e ed< e «Ze e ed< e d¬«Z e e ed< e d¬«Z!e e ed< e «Z"e e ed< e d¬«Z#e ee ed < e d¬«Z$e ee%jLed!< e d¬«Z'e e(jRed"< e d¬«Z*e ee ed#< e d¬«Z+e e,e e fed$< e d¬«Z-e ee.j^ed%< e d¬«Z0e ee ed&< e d¬«Z1e ee ed'< e d¬«Z2e ee ed(< e d¬«Z3e ee ed)< e d¬«Z4e ee ed*<y+),r¶aJRepresentation of distribution metadata. Compared to :class:`RawMetadata`, this class provides objects representing metadata fields instead of only using built-in types. Any invalid metadata will cause :exc:`InvalidMetadata` to be raised (with a :py:attr:`~BaseException.__cause__` attribute as appropriate). r¾TrÓr_rÔr.cóÊ—|«}|j«|_|rÅg} |j}tj |«}t|j«tz}|dhz}|D]l} |r[ |j| j} tj | «} | kDr't| } t | d«} |j | «Œat|| «Œn|r td|«‚|S#t $r}|j |«d}Yd}~ŒÄd}~wwxYw#t$r#t | d| ›�«} |j | «YŒÓwxYw#t $r} |j | «Yd} ~ Œöd} ~ wwxYw)zÞCreate an instance from :class:`RawMetadata`. If *validate* is true, all metadata will be validated. All exceptions related to validation will be gathered and raised as an :class:`ExceptionGroup`. NrCúunrecognized field: zW{field} introduced in metadata version {field_metadata_version}, not {metadata_version}zinvalid metadata)Úcopyr¾rCrÍÚindexr<r•rŽÚ_REQUIRED_ATTRSr½r²rkr¸rÀr+)Úclsr_rÔÚinsr-rCÚ metadata_ageÚmetadata_version_excÚfields_to_checkÚkeyÚfield_metadata_versionrÊÚ field_ager=s rÚfrom_rawzMetadata.from_raw�s�€ñ‹eˆØ—9‘9“;ˆŒá Ø02ˆJð (Ø#&×#7Ñ#7Ð Ü7×=Ñ=Ð>NÓO� ô(¨¯©Ó1´OÑCˆOà Ð 2Ð3Ñ 3ˆOã&�ð+Ù'ð%Ø58·\±\À#Ñ5F×5LÑ5LÐ2ô %=×$BÑ$BØ2ó%˜ ð% |Ò3Ü$9¸#Ñ$>˜EÜ"1Ø %ð!Só#˜Cð '×-Ñ-¨cÔ2Ø$ܘC Õ%ð/'ñ6Ü$Ð%7¸ÓDÐDàˆ øôQ#ò (Ø×!Ñ!Ð"6Ô7Ø#'Õ ûð (ûô" (ò%Ü"1°#Ð9MÈcÈWÐ7UÓ"V˜CØ&×-Ñ-¨cÔ2Ù$ð%ûô"'ò+Ø×%Ñ% c×*Ñ*ûð+úsZ¢!C&Á+D>Á.DÂAD>à D>Ã& D Ã/DÄD Ä)D;Ä8D>Ä:D;Ä;D>Ä> E"ÅEÅE"cóF—g}t|«\}}|rC|D]0}|tvr|›d�}nd|›�}|jt||««Œ2|r t d|«‚ |j ||¬«S#t$r-}|j |j«t d|«d‚d}~wwxYw)zÓParse metadata from email headers. If *validate* is true, the metadata will be validated. All exceptions related to validation will be gathered and raised as an :class:`ExceptionGroup`. z has invalid datar rŸrÓzinvalid or unparsed metadataN)rªr—r•r<r+rrhr-) rr_rÔr-ržrŸÚ unparsed_keyr,Ú exc_groups rÚ from_emailzMetadata.from_emailÖs¿€ð-/ˆ Ü# DÓ)‰ ˆˆXá Û (� ØÔ#8Ñ8Ø!-Ð 0Ð0AÐB‘Gà 4°\Ð4DÐE�GØ×!Ñ!¤/°,ÀÓ"HÕIð !)ñÜ$ Z°Ó<Ð<ð WØ—<‘< ¨h�<Ó7Ð 7øÜò WØ × Ñ ˜i×2Ñ2Ô 3Ü Ð!?ÀÓLÐRVÐ Vûð WúsÁA*Á* B Á3(BÂB rCrDrr¯r³r]rEr¬rMrFrGr®r[rHrIrNrJrKr­rSrTrLrOrUrXrYrZr\rVrWrPrQrRN)5r$r%r&r7rBr9Ú classmethodÚboolrr r�r8rr±rCrÎrDrrÜrr]rrErMrFrGr[rHrIrNrJrKrSrTrLrOrUrrrXrrýrYrZrr\rrrVrWrPrQrRrr"rr¶r¶’sI…ñð ÓàØ=Aò6˜Kð6°dð6Àjò6óð6ðpà:>òWؘ ˜Ñ$ðWØ37ðWà òWóðWñ86@³\Ð�jÐ!1Ñ2ÓAð<á&›L€Dˆ*�S‰/Ó(ðñ3=³,€GˆZ˜×.Ñ.Ñ /Ó>Ø:Ù%/Øô&€GˆZ˜˜S™ Ñ "óðDá'1£|€Iˆz˜$˜s™)Ñ$Ó3Ø0Ù1;À%Ô1HИ D¨¡IÑ.ÓHØ:Ù)›|€GˆZ˜‰_Ó+ØRÙ#-£<€K�˜C‘Ó/Ø3Ù0:ÀÔ0GИj¨™oÓGØLÙ&0£l€Hˆj˜˜c™Ñ#Ó2Ø0Ù!+£€Iˆz˜#‰Ó-Ø1Ù$.°UÔ$;€L�*˜S‘/Ó;Ø4Ù(›l€FˆJ�s‰OÓ*Ø.Ù$.£L€L�*˜S‘/Ó0Ø4Ù",°5Ô"9€J� ˜3‘Ó9Ø2Ù(2¸Ô(?Ð�j ‘oÓ?Ø8Ù)›|€GˆZ˜‰_Ó+Ø/Ù)3¸%Ô)@€K�˜D ™IÑ&Ó@Ø2Ù@JÐQVÔ@W€M�:˜d <×#;Ñ#;Ñ<Ñ=ÓWØ5Ù;EÈEÔ;R€O�Z  × 7Ñ 7Ñ8ÓRØ7ñ0:ÀÔ/FÐ�z $ s¡)Ñ,ÓFØ9Ù/9ÀÔ/F€L�*˜T # s (™^Ñ,ÓFØ3ñ>HØô>€N�J˜t E×$8Ñ$8Ñ9Ñ:óð7Ù+5¸EÔ+B€M�:˜d 3™iÑ(ÓBØ5Ù,6¸UÔ,C€N�J˜t C™yÑ)ÓCØ6Ù&0°uÔ&=€Hˆj˜˜c™Ñ#Ó=Ø#Ù&0°uÔ&=€Hˆj˜˜c™Ñ#Ó=Ø#Ù'1¸Ô'>€Iˆz˜$˜s™)Ñ$Ó>Ø$r"r¶)=Úemail.feedparserr‡Ú email.headerÚ email.messageÚ email.parserÚ email.policyÚsysÚtypingrrrrrrr r r r rgrrrrrÜÚTypeVarrÚ version_inforrÚ TYPE_CHECKINGÚtyping_extensionsÚ ImportErrorÚ __builtins__r+rÁr:r}r<rBr™ršr¿r8rerrr,ÚMessager�r€r—Úitemsr¸rªÚobjectÚ _NOT_FOUNDrÍrÎrŽr r±r¶)r‡ržs00rÚr.sðÛÛÛÛÛÛ Û ÷ ÷ ÷ ÷IÓHà€F‡N�N�3Ó€Ø×Ñ�B�QИ6Ò!ß)Ð)à ×Òß8Ð8ð ß <ðWØ!×0Ñ0€Nô*"�jô"ô=�) 5õ=òH€ò" € ð ð€ ð 0˜#ð0 $ s¡)ó0ð %˜d 3™ið%¨D°°c°©Nó%ðP?�e—m‘m×+Ñ+ð?°U¸5À#¸:Ñ5Fð?È3ó?ð:Ø ˆhðà�Nðð�-ðð�=ð ð Ð :ð ð �Nð ðˆyðð�ðð� ððˆyðð�,ððÐ*ððÐ*ðð ˆFðð�ðð Ð&ð!ð"� ð#ð$"ØØ$Ø&ØØ$Ø,Ø(ØØ/Øò9Ðð<7L×6QÑ6QÔ6SÔTÑ6S© ¨¨s˜˜e™Ð6SÒTÐðm,�e˜E 3˜JÑ'ðm,¨E°+¸tÀCÈÈcÉÀNÑ?SÐ2SÑ,Tóm,ñ`‹X€ òFÐØÐCÑDÐáÒCÓD€ôq�˜‘ôq÷hd%òd%øðeò ÷ ñ ÷ ô ð  ûðòWôW˜÷WðWüóhUs*ÂF. GÅ G%Æ.G Ç G ÇG"Ç!G"