Ë
    jj;˜  ã                   ó¼  — d dl mZ d dlmZ d dlmZmZmZmZm	Z	m
Z
mZmZmZmZmZmZmZ ddlZddlZddlZddlZddlmZmZmZmZ dedeee   eeef   fd	„Zd
ededefd„Zdedefd„Z  G d„ de«      Z!	 	 d-dededededede!fd„Z"d.dededdfd„Z#dededededdf
d„Z$dedefd „Z% G d!„ d"e«      Z&d/d#ed$ed%ede&fd&„Z'd'eddfd(„Z( G d)„ d*e«      Z)d+ede)fd,„Z*y)0é   )ÚEmailSyntaxError)ÚValidatedEmail)ÚEMAIL_MAX_LENGTHÚLOCAL_PART_MAX_LENGTHÚDOMAIN_MAX_LENGTHÚDOT_ATOM_TEXTÚDOT_ATOM_TEXT_INTLÚATEXT_REÚATEXT_INTL_DOT_REÚATEXT_HOSTNAME_INTLÚ
QTEXT_INTLÚDNS_LABEL_LENGTH_LIMITÚDOT_ATOM_TEXT_HOSTNAMEÚDOMAIN_NAME_REGEXÚDOMAIN_LITERAL_CHARSé    N)ÚOptionalÚTupleÚ	TypedDictÚUnionÚemailÚreturnc                 óò  — dt         dt        t         df   dt        t         t         f   fd„}dt         dt        t         t        f   fd„} || d«      \  }}|j                  d«      rà|j	                  «       } ||«      \  }}|sb|D �ch c],  }t        j                  |«      s|d	k7  s|d
k(  rt        |«      ’Œ. }}|r)t        ddj                  t        |«      «      z   d
z   «      ‚t        |d¬«       d|vrt        d«      ‚|j	                  d	«      }|d   dk7  rt        d«      ‚|dd  j	                  d«      }	 ||	d«      \  }
}nd }||}}
|j                  d«      r|dd  } ||
«      \  }
}||
||fS c c}w )NÚtextÚspecials.r   c                 ó’  — d}d}d}t        | «      D ]b  \  }}t        j                  d| |d  «      d   |k7  r||z  }Œ+|r||z  }|dk(  r|sd}Œ<|dk(  r|sd}d}ŒHd}ŒK|dk(  r||z  }d}ŒX||v r n||z  }Œd t        |«      t        | «      k(  r)d| v rt	        d	«      ‚d
| v rt	        d«      ‚t	        d«      ‚| t        |«      d  }||fS )NFÚ ÚNFCr   Ú\TÚ"u   ï¼ zZThe email address has the "full-width" at-sign (@) character instead of a regular at-sign.u   ï¹«zWThe email address has the "small commercial at" character instead of a regular at-sign.z%An email address must have an @-sign.)Ú	enumerateÚunicodedataÚ	normalizeÚlenr   )r   r   Úinside_quoteÚescapedÚ	left_partÚiÚcÚ
right_parts           ú_/var/www/html/sergio/sergio-backend/venv/lib/python3.12/site-packages/email_validator/syntax.pyÚ split_string_at_unquoted_specialz5split_email.<locals>.split_string_at_unquoted_special2   s!  € ð
 ˆØˆØˆ	Ü˜d–O‰DˆAˆqô ×$Ñ$ U¨D°°¨HÓ5°aÑ8¸AÒ=Ø˜Q‘‘	áØ˜Q‘�	Ø˜’9¡WØ"‘GØ˜#’X¡gà#(�LØ#‘Gà#‘GØ�c’Ø˜Q‘�	Ø#‘Ø�h‘áà˜Q‘‘	ð5 $ô> ˆy‹>œS ›YÒ&ð ˜‰}Ü&ð  (Fó  Gð  Gð ˜‰}Ü&ð  (Aó  Bð  Bä"Ð#JÓKÐKð œ#˜i›.˜/Ð*ˆ
à˜*Ð$Ð$ó    c           
      ó  — d}d}d}t        | «      D ]v  \  }}|r]|r||z  }d}Œ|dk(  rd}Œ|dk(  r@|t        | «      dz
  k7  r*t        ddj                  d	„ | |dz   d  D «       «      z   «      ‚ ||fS ||z  }Œe|d
k(  r|dk(  rd}Œr||z  }Œx ||fS )NFr   r   Tr    r   z,Extra character(s) found after close quote: ú, c              3   ó2   K  — | ]  }t        |«      –— Œ y ­w©N©Úsafe_character_display©Ú.0r)   s     r+   Ú	<genexpr>z=split_email.<locals>.unquote_quoted_string.<locals>.<genexpr>…   s   è ø€ Ð:kÑ^jÐYZÔ;QÐRS×;TÑ^jùó   ‚r   )r!   r$   r   Újoin)r   Úquotedr&   Úvaluer(   r)   s         r+   Úunquote_quoted_stringz*split_email.<locals>.unquote_quoted_strings   s×   € ð
 ˆØˆØˆÜ˜d–O‰DˆAˆqÙÙØ˜Q‘J�EØ#‘GØ˜$’YØ"‘GØ˜#’XØœC ›I¨™MÒ)Ü.Ð/]Ø15·±Ñ:kÐ^bÐcdÐghÑchÐciÑ^jÓ:kÓ1kñ0ló mð màð �fˆ}Ðð ˜Q‘J‘EØ�a’˜A šHØ‘à˜‘
‘ð# $ð& �fˆ}Ðr-   )Ú@Ú<r=   Ú Ú.z>The display name contains invalid characters when not quoted: r/   T©Úallow_spaceÚ>zoAn open angle bracket at the start of the email address has to be followed by a close angle bracket at the end.éÿÿÿÿz0There can't be anything after the email address.r   )r<   r<   )Ústrr   ÚboolÚ
startswithÚrstripr
   Úmatchr3   r   r8   ÚsortedÚcheck_unsafe_chars)r   r,   r;   r'   r*   Údisplay_nameÚdisplay_name_quotedr)   Ú	bad_charsÚ	addr_specÚ
local_partÚdomain_partÚis_quoted_local_parts                r+   Úsplit_emailrR      sò  € ðH?%¬sð ?%¼eÄCÈÀH¹oð ?%ÔRWÔX[Ô]`ÐX`ÑRaó ?%ðB¤Cð ¬E´#´t°)Ñ,<ó ñ< =¸UÀJÓOÑ€Iˆzð ×Ñ˜SÔ!à×$Ñ$Ó&ˆ	ñ -BÀ)Ó,LÑ)ˆÐ)ñ #ñ &óá%�AÜ Ÿ™ qÔ)¨a°3ªh¸1Àº8ô ' qÕ)Ø%ð ð ñ
 Ü&Ð'gÐjn×jsÑjsÔtzð  |Eó  uFó  kGñ  (Gð  JMñ  (Mó  Nð  Nô 	˜<°TÕ:ð �jÑ Ü"ð  $Uó  Vð  VØ×&Ñ& sÓ+ˆ
Ø�b‰>˜SÒ Ü"Ð#UÓVÐVð ˜q˜r�N×)Ñ)¨#Ó.ˆ	ñ #CÀ9ÈfÓ"UÑˆ
‘Kð
 ˆØ"+¨Z�Kˆ
à×Ñ˜cÔ"Ø! ! "�oˆñ (=¸ZÓ'HÑ$€JÐ$à˜ [Ð2FÐFÐFùòKs   Â1E4ÚaddrÚlimitc                 óB   — t        | «      |z
  }|dkD  rdnd}d|› d|› d�S )zEHelper function to return an error message related to invalid length.r   Úsr   Ú(ú
 characterú
 too many))r$   )rS   rT   ÚdiffÚsuffixs       r+   Úget_length_reasonr\   É   s2   € äˆt‹9�uÑ€DØ˜1’H‰S "€FØˆtˆf�J˜v˜h jÐ1Ð1r-   r)   c                 ó   — | dk(  rd| › d�S t        j                  | «      d   dv rt        | «      S t        | «      dk  rdt        | «      d›�j	                  «       }ndt        | «      d›�j	                  «       }t        j
                  | |«      S )	Nr   r    r   ©ÚLÚNÚPÚSiÿÿ  zU+Ú04xÚ08x)r"   ÚcategoryÚreprÚordÚupperÚname)r)   Úhs     r+   r3   r3   Ð   s‘   € àˆD‚yØ�A�3�bˆzÐÜ×Ñ˜AÓ˜qÑ!Ð%9Ñ9Ü�A‹wˆô ˆ1ƒv�‚Ø”�Q“˜�Ð×#Ñ#Ó%‰à”�Q“˜�Ð×#Ñ#Ó%ˆô ×Ñ˜A˜qÓ!Ð!r-   c                   ó2   — e Zd ZU eed<   ee   ed<   eed<   y)ÚLocalPartValidationResultrO   Úascii_local_partÚsmtputf8N)Ú__name__Ú
__module__Ú__qualname__rD   Ú__annotations__r   rE   © r-   r+   rl   rl   á   s   … ØƒOØ˜s‘mÓ#Ø„Nr-   rl   ÚlocalÚallow_smtputf8Úallow_empty_localÚquoted_local_partÚstrictc                 óF  — t        | «      dk(  r|st        d«      ‚| | ddœS |r2t        | «      t        kD  r t        | t        ¬«      }t        d|› d�«      ‚t	        j
                  | «      r| | ddœS d}d}t        j
                  | «      rj|sc| D �ch c]"  }t        j
                  |«      st        |«      ’Œ$ }	}|	r)t        d	d
j                  t        |	«      «      z   dz   «      ‚t        d«      ‚d}d}n¹|r·| D �ch c]"  }t        j
                  |«      st        |«      ’Œ$ }	}|	r)t        dd
j                  t        |	«      «      z   dz   «      ‚| D �ch c]#  }dt        |«      cxk  rdk  sn t        |«      ’Œ% }	}|	r-d}|s)t        d	d
j                  t        |	«      «      z   dz   «      ‚d}|rQt        | |dk(  ¬«       	 | j                  d«       |dk(  rdt!        j"                  dd| «      z   dz   } | |s| |dœS d|dœS | D �ch c]"  }t%        j
                  |«      st        |«      ’Œ$ }	}|	r)t        dd
j                  t        |	«      «      z   dz   «      ‚t'        | ddd¬«       t        d«      ‚c c}w c c}w c c}w # t        $ r}
t        d«      |
‚d}
~
ww xY wc c}w )z;Validates the syntax of the local part of an email address.r   z*There must be something before the @-sign.F)rO   rm   rn   ©rT   z0The email address is too long before the @-sign r?   NzBInternationalized characters before the @-sign are not supported: r/   zAInternationalized characters before the @-sign are not supported.zdot-atomTzKThe email address contains invalid characters in quotes before the @-sign: é    é~   r9   r@   Úutf8z0The email address contains an invalid character.r    z(["\\])z\\\1zAThe email address contains invalid characters before the @-sign: z(An email address cannot start with a {}.z@An email address cannot have a {} immediately before the @-sign.©Úis_hostnamez@The email address contains invalid characters before the @-sign.)r$   r   r   r\   r   rH   r	   r
   r3   r8   rI   r   rg   rJ   ÚencodeÚ
ValueErrorÚreÚsubr   Úcheck_dot_atom)rt   ru   rv   rw   rx   ÚreasonÚvalidÚrequires_smtputf8r)   rM   Úes              r+   Úvalidate_email_local_partr‰   ç   s·  € ô ˆ5ƒz�Q‚Ù Ü"Ð#OÓPÐPð
  Ø %Øñ
ð 	
ñ ”#�e“*Ô4Ò4Ü" 5Ô0EÔFˆÜÐ!QÐRXÐQYÐYZÐ[Ó\Ð\ô ×Ñ˜5Ô!ð  Ø %Øñ
ð 	
ð  €EØÐÜ×Ñ Ô&áñ óá�AÜ—~‘~ aÔ(ô ' qÕ)Øð ð ñ
 Ü&Ð'kÐnr×nwÑnwÔx~ð  @Ió  yJó  oKñ  (Kð  NQñ  (Qó  Rð  Rô #Ð#fÓgÐgð ˆØ Ññ 
ñ ó
á�Ü×#Ñ# AÔ&ô # 1Õ%Øð 	ð 
ñ
 Ü"Ð#pÐsw×s|Ñs|ô  ~Dð  ENó  ~Oó  tPñ  $Pð  SVñ  $Vó  Wð  Wñ
 ó
á�Øœ#˜a›&Ô' CÔ'ô # 1Õ%Øð 	ð 
ñ
 Ø $Ðñ "Ü&Ð'kÐnr×nwÑnwÔx~ð  @Ió  yJó  oKñ  (Kð  NQñ  (Qó  Rð  Rð ˆñ ô 	˜5¨u¸Ñ/@ÕBð
	^Ø�L‰L˜Ô ð �HÒØœ"Ÿ&™& ¨W°eÓ<Ñ<¸sÑBˆEð  Ù-> Ø)ñ
ð 	
àDHØ)ñ
ð 	
ñ óáˆAÜ ×&Ñ& qÔ)ô 	˜qÕ!Øð ð ñ
 ÜÐbÐei×enÑenÔouÐvó  pAó  fBñ   Bð  EHñ   Hó  Ið  	Iô �5ÐDð  GIð  W\õ  ]ô Ð]Ó
^Ð^ùòGùò0
ùò
øô< ò 	^Ü"Ð#UÓVÐ\]Ð]ûð	^üò,s0   Â'I2Ã:'I7Å(I<Ç J È'JÊ	JÊ
JÊJrV   rA   c           	      óÚ  — t        «       }t        | «      D ]¡  \  }}t        j                  |«      }|d   dv rŒ#|d   dk(  r|dk(  sŒ1|j	                  |«       ŒC|dk(  r|rŒK|j	                  |«       Œ]|d   dk(  r|j	                  |«       Œw|d   dk(  r|j	                  |«       Œ‘|j	                  |«       Œ£ |r0t        ddj                  d	„ t        |«      D «       «      z   d
z   «      ‚y )Nr   r^   ÚMÚZsÚZÚCz.The email address contains unsafe characters: r/   c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr1   r2   r4   s     r+   r6   z%check_unsafe_chars.<locals>.<genexpr>¹  s   è ø€ Ð*`ÑN_ÈÔ+AÀ!×+DÑN_ùr7   r?   )Úsetr!   r"   re   Úaddr   r8   rI   )rV   rA   rM   r(   r)   re   s         r+   rJ   rJ   ˆ  sþ   € ô “€IÜ˜!–‰ˆˆ1Ü×'Ñ'¨Ó*ˆØ�A‰;Ð.Ñ.àØ�a‰[˜CÒð
 �A‹vØ—‘˜aÕ Ø˜Òò Ø—‘˜aÕ Ø�a‰[˜CÒð
 �M‰M˜!ÕØ�a‰[˜CÒð �M‰M˜!Õð �M‰M˜!ÕðU ñV ÜÐOØ!%§¡Ñ*`ÌfÐU^ÔN_Ó*`Ó!`ñ aØcfñ gó hð 	hð r-   ÚlabelÚstart_descrÚ	end_descrr   c                 ó¦  — | j                  d«      rt        |j                  d«      «      ‚| j                  d«      rt        |j                  d«      «      ‚d| v rt        d«      ‚|rj| j                  d«      rt        |j                  d«      «      ‚| j                  d«      rt        |j                  d«      «      ‚d| v sd| v rt        d	«      ‚y y )
Nr?   Úperiodz..z2An email address cannot have two periods in a row.Ú-Úhyphenz.-z-.zFAn email address cannot have a period and a hyphen next to each other.)Úendswithr   ÚformatrF   )r’   r“   r”   r   s       r+   r„   r„   ¼  sÇ   € à‡~�~�cÔÜ˜y×/Ñ/°Ó9Ó:Ð:Ø×Ñ˜ÔÜ˜{×1Ñ1°(Ó;Ó<Ð<Øˆu�}ÜÐSÓTÐTáà�>‰>˜#ÔÜ" 9×#3Ñ#3°HÓ#=Ó>Ð>Ø×Ñ˜CÔ Ü" ;×#5Ñ#5°hÓ#?Ó@Ð@Ø�5‰=˜D E™MÜ"Ð#kÓlÐlð *ð r-   Úcharc                 óh  — t        | «      }d|cxk  rdk  ry d|cxk  rdk  rn nd|cxk  rdk  sn d|cxk  rd	k  r"n y|d
v sd|cxk  rdk  sn d|cxk  rdk  ry nyt        j                  t        |«      «      dv rydt        j                  t        |«      «      j                  d«      v ryy)Né€   éŸ   Fi   i`   i$   i&   i(   i.   )é­   id   iÿ  i   i   i ¼ i£¼ T)ÚCfÚCnÚCoÚCsrŒ   ÚZlÚZpÚ002Er>   )rg   r"   re   ÚchrÚdecompositionÚsplit)r›   r)   s     r+   Úuts46_valid_charrª   Ï  sÉ   € ô
 	ˆD‹	€AØˆqÔ�DÒàð ð �QÔ ˜&Õ ¨&°AÔ*?¸Ô*?È&ÐTUÔJ_ÐY_ÔJ_ð ð Ð*Ñ*Ø�qÔ"˜FÔ"Ø˜Ô$˜WÒ$ð ñ %ð Ü	×	Ñ	œc !›fÓ	%Ð)SÑ	Sð Ø	”;×,Ñ,¬S°«VÓ4×:Ñ:¸3Ó?Ñ	?àØr-   c                   ó"   — e Zd ZU eed<   eed<   y)ÚDomainNameValidationResultÚascii_domainÚdomainN)ro   rp   rq   rD   rr   rs   r-   r+   r¬   r¬   í  s   … ØÓØ„Kr-   r¬   r®   Útest_environmentÚglobally_deliverablec                 ó´  — | D �ch c]"  }t        j                  |«      st        |«      ’Œ$ }}|r)t        ddj	                  t        |«      «      z   dz   «      ‚t        | «       | D �ch c]  }t        |«      st        |«      ’Œ }}|r)t        ddj	                  t        |«      «      z   dz   «      ‚| }	 t        j                  | dd¬«      } | D �ch c]"  }t        j                  |«      st        |«      ’Œ$ }}|r)t        d	dj	                  t        |«      «      z   dz   «      ‚t        | d
dd¬«       | j                  d«      D ]2  }t        j                  d|t        j                  «      sŒ)t        d«      ‚ t        j                  | «      r| }nH	 dj	                  d„ | j                  d«      D «       «      }t        j                  |«      st        d«      ‚t!        |«      t"        kD  rR||k(  r t%        |t"        ¬«      }	t        d|	› d�«      ‚t!        |«      t"        z
  }
|
dk(  rdnd}t        d|
› d|› d�«      ‚|j                  d«      D ]4  }t!        |«      t&        kD  sŒt%        |t&        ¬«      }	t        d|	› d�«      ‚ |r6d|vr|dk(  r|st        d«      ‚t)        j*                  |«      st        d«      ‚ddlm} |D ].  }|dk(  r|rŒ||k(  s|j1                  d|z   «      sŒ%t        d «      ‚ 	 t        j2                  |j5                  d!«      «      }|D �ch c]"  }t        j                  |«      st        |«      ’Œ$ }}|r)t        ddj	                  t        |«      «      z   dz   «      ‚t        |«       	 t        j4                  |«       ||d$œS c c}w c c}w # t        j                  $ r}t        d|› d�«      |‚d}~ww xY wc c}w # t        j                  $ r}t        d|› d�«      |‚d}~ww xY w# t        j                  $ r}t        d"|› d�«      |‚d}~ww xY wc c}w # t        j                  $ r}t        d#|› d�«      |‚d}~ww xY w)%z<Validates the syntax of the domain part of an email address.z7The part after the @-sign contains invalid characters: r/   r?   F)Ú
std3_rulesÚtransitionalz7The part after the @-sign contains invalid characters (ú).NzSThe part after the @-sign contains invalid characters after Unicode normalization: z?An email address cannot have a {} immediately after the @-sign.z&An email address cannot end with a {}.Tr~   z
(?!xn)..--z€An email address cannot have two letters followed by two dashes immediately after the @-sign or after a period, except Punycode.c              3   ód   K  — | ](  }t        j                  |«      j                  d «      –— Œ* y­w)ÚasciiN)ÚidnaÚalabelÚdecode)r5   r’   s     r+   r6   z-validate_email_domain_name.<locals>.<genexpr>G  s,   è ø€ ð $á.�Eô —‘˜EÓ"×)Ñ)¨'×2Ù.ùs   ‚.0z&The part after the @-sign is invalid (zSThe email address contains invalid characters after the @-sign after IDNA encoding.rz   z/The email address is too long after the @-sign r   r   rV   z0The email address is too long after the @-sign (ú bytez too many after IDNA encoding).zDAfter the @-sign, periods cannot be separated by so many characters Útestz@The part after the @-sign is not valid. It should have a period.zRThe part after the @-sign is not valid. It is not within a valid top-level domain.)ÚSPECIAL_USE_DOMAIN_NAMESz[The part after the @-sign is a special-use or reserved name that cannot be used with email.r¶   z-The part after the @-sign is not valid IDNA (zXThe part after the @-sign became invalid after normalizing to international characters ()r­   r®   )r   rH   r3   r   r8   rI   rJ   rª   r·   Úuts46_remapÚ	IDNAErrorr„   r©   r‚   ÚIr   r$   r   r\   r   r   Úsearchr   r¼   r™   r¹   r€   )r®   r¯   r°   r)   rM   Úoriginal_domainrˆ   r’   r­   r…   rZ   rV   r¼   ÚdÚdomain_i18ns                  r+   Úvalidate_email_domain_namerÄ   ò  s!  € ñ óáˆAÜ"×(Ñ(¨Ô+ô 	˜qÕ!Øð ð ñ
 ÜÐXÐ[_×[dÑ[dÔekÐluÓevÓ[wÑwÐz}Ñ}Ó~Ð~ô �vÔñ
 ,2óÙ+1 aÜ Ô"ô 	˜qÕ!¨6ð ð ñ ÜÐXÐ[_×[dÑ[dÔekÐluÓevÓ[wÑwÐz}Ñ}Ó~Ð~ð €OðgÜ×!Ñ! &°UÈÔOˆñ óáˆAÜ"×(Ñ(¨Ô+ô 	˜qÕ!Øð ð ñ
 ÜÐtÐw{÷  xAñ  xAô  BHð  IRó  BSó  xTñ   Tð  WZñ   Zó  [ð  	[ô �6Ð\ð  _Gð  UYõ  Zð —‘˜cÖ"ˆÜ�8‰8�M 5¬"¯$©$Õ/Ü"ð  $fó  gð  gð #ô ×#Ñ# FÔ+à‰ð	ZØŸ8™8ñ $à#Ÿ\™\¨#Ô.ó$ó ˆLô &×+Ñ+¨LÔ9Ü"Ð#xÓyÐyô ˆ<ÓÔ,Ò,Ø˜?Ò*Ü& |Ô;LÔMˆFÜ"Ð%TÐU[ÐT\Ð\]Ð#^Ó_Ð_ä�|Ó$Ô'8Ñ8ˆDØ˜a’i‘ SˆAÜ"Ð%UÐVZÐU[Ð[`ÐabÐ`cð  dCð  $Dó  Eð  Eð ×#Ñ# CÖ(ˆÜˆu‹:Ô.Ó.Ü& uÔ4JÔKˆFÜ"Ð%iÐjpÐiqÐqrÐ#sÓtÐtð )ñ
 ð �lÑ"¨L¸FÒ,BÑGWÜ"Ð#eÓfÐfô !×'Ñ'¨Ô5Ü"Ð#wÓxÐxõ +Û%ˆà�Š;Ñ+Øà˜1Ò × 5Ñ 5°c¸A±gÕ >Ü"ð  $Aó  Bð  Bð &ð ]Ü—k‘k ,×"5Ñ"5°gÓ">Ó?ˆñ óáˆAÜ"×(Ñ(¨Ô+ô 	˜qÕ!Øð ð ñ
 ÜÐXÐ[_×[dÑ[dÔekÐluÓevÓ[wÑwÐz}Ñ}Ó~Ð~Ü�{Ô#ðHÜ�‰�KÔ ð %Øñð ùòyùò øô$ �>‰>ò gÜÐ!XÐYZÐX[Ð[]Ð^Ó_ÐefÐfûðgüò
øôZ �~‰~ò 	Zä"Ð%KÈAÈ3ÈbÐ#QÓRÐXYÐYûð	ZûôL �>‰>ò ]ÜÐ!NÈqÈcÐQSÐTÓUÐ[\Ð\ûð]üòøô �>‰>ò HÜÐ!yÐz{Ðy|Ð|~Ðó  Að  GHð  	HûðHúsw   …'NÁ(NÂ5N$ Ã'OÆ'O Ë8$O? Ì 'P*Î P/ Î$OÎ7OÏOÏO<Ï'O7Ï7O<Ï?P'ÐP"Ð"P'Ð/QÑQÑQÚaddrinfoc                 ó  — | j                   d f| j                  df| j                  xs | j                  xs ddz   | j                  z   dfg}|D ]½  \  }}t        |«      }t        |j                  d«      «      }|t        z
  }|dkD  sŒ:|€||k(  rt        |t        ¬«      }n]|€Ft        d„ |D «       «      }t        d	||z  «      }|d	kD  rd
nd}	||k(  r
d|› d|	› d�}n"d|› d|› d|	› d�}n|d	kD  rd
nd}	|d|› d|	› d�z  }t        d|› d�«      ‚ y )Nzafter normalizationr   r<   z9when the part after the @-sign is converted to IDNA ASCIIr}   r   rz   c              3   óP   K  — | ]  }t        |j                  d «      «      –— Œ  y­w)r}   N)r$   r€   r4   s     r+   r6   z(validate_email_length.<locals>.<genexpr>è  s   è ø€ Ð?¹$°Qœ3˜qŸx™x¨Ó/×0¹$ùs   ‚$&r   rV   rW   rX   rY   r—   z (rº   zThe email address is too long r?   )ÚoriginalÚ
normalizedrm   rO   r­   r$   r€   r   r\   Úmaxr   )
rÅ   Úaddresses_to_checkrS   r…   Úaddr_lenÚaddr_utf8_lenrZ   ÚmbpcÚmcharsr[   s
             r+   Úvalidate_email_lengthrÐ   ¹  s^  € ð2 
×	Ñ	˜DÐ!Ø	×	Ñ	Ð3Ð4Ø
×
#Ñ
#Ò
@ x×':Ñ':Ò
@¸bÀCÑ	GÈ(×J_ÑJ_Ñ	_ð  b]ð  	^ðÐó +‰ˆˆfÜ�t“9ˆÜ˜DŸK™K¨Ó/Ó0ˆØÔ/Ñ/ˆØ�!‹8Øˆ~ (¨mÒ";ô +¨4Ô7GÔH‘Ø�ô Ñ?¹$Ó?Ó?�Ü˜Q ¨¡Ó-�Ø $ q¢™¨b�Ø˜T’>Ø    j°°¸
ÐC‘Fà   ¨¨$¨¨z¸&¸ÀÐL‘Fð
 !% q¢™¨b�Ø˜B˜t˜f E¨&¨°Ð<Ñ<�Ü"Ð%CÀFÀ8È1Ð#MÓNÐNñ= +r-   c                   óT   — e Zd ZU eej
                  ej                  f   ed<   eed<   y)ÚDomainLiteralValidationResultÚdomain_addressr®   N)	ro   rp   rq   r   Ú	ipaddressÚIPv4AddressÚIPv6Addressrr   rD   rs   r-   r+   rÒ   rÒ   ø  s#   … Ø˜)×/Ñ/°×1FÑ1FÐFÑGÓGØ„Kr-   rÒ   Údomain_literalc                 óX  — t        j                  d| «      r	 t        j                  | «      }|d|› d�dœS | j                  d«      r,	 t        j                  | dd  «      }|d|j                  › d�dœS d| vrt        d«      ‚| D �ch c]"  }t        j                  |«      st        |«      ’Œ$ }}|r)t        ddj                  t        |«      «      z   dz   «      ‚t        d«      ‚# t        $ r}t        d|› d�«      |‚d }~ww xY w# t        $ r}t        d	|› d
�«      |‚d }~ww xY wc c}w )Nz
^[0-9\.]+$zRThe address in brackets after the @-sign is not valid: It is not an IPv4 address (z') or is missing an address literal tag.Ú[Ú])rÓ   r®   zIPv6:é   z<The IPv6 address in brackets after the @-sign is not valid (r´   z[IPv6:Ú:z\The part after the @-sign in brackets is not an IPv4 address and has no address literal tag.zCThe part after the @-sign contains invalid characters in brackets: r/   r?   zNThe part after the @-sign contains an invalid address literal tag in brackets.)r‚   rH   rÔ   rÕ   r�   r   rF   rÖ   Ú
compressedr   r3   r8   rI   )r×   rS   rˆ   r)   rM   s        r+   Úvalidate_email_domain_literalrÞ   ý  s¦  € ô 
‡x�x�˜~Ô.ð	kÜ×(Ñ(¨Ó8ˆDð #Ø˜$˜˜q�kñ
ð 	
ð × Ñ  Ô)ð	pÜ×(Ñ(¨¸¸Ð);Ó<ˆDð #Ø˜tŸ™Ð/¨qÐ1ñ
ð 	
ð �.Ñ ÜÐ}Ó~Ð~ñ  óáˆAÜ#×)Ñ)¨!Ô,ô 	˜qÕ!Øð ð ñ
 ÜÐdÐgk×gpÑgpÔqwð  yBó  rCó  hDñ   Dð  GJñ   Jó  Kð  	Kô ÐkÓ
lÐløôY ò 	kÜ"Ð%wÐxyÐwzð  {bð  $có  dð  jkð  kûð	kûô ò 	pÜ"Ð%aÐbcÐadÐdfÐ#gÓhÐnoÐoûð	püò*s5   ˜C% ÁD Â'D'Ã%	DÃ.C>Ã>DÄ	D$ÄDÄD$)TFFF)F)FT)+Ú
exceptionsr   Útypesr   Úrfc_constantsr   r   r   r   r	   r
   r   r   r   r   r   r   r   r‚   r"   r·   rÔ   Útypingr   r   r   r   rD   rE   rR   Úintr\   r3   rl   r‰   rJ   r„   rª   r¬   rÄ   rÐ   rÒ   rÞ   rs   r-   r+   Ú<module>rä      s¼  ðÝ (Ý !÷\÷ \÷ \õ \ó 
Û Û Û ß 4Ó 4ðxG�sð xG˜u X¨c¡]°C¸¸dÐ%BÑCó xGðv2˜Cð 2¨ð 2°ó 2ð"˜cð " có "ô" 	ô ð bgØNSñ^_ Sð ^_¸$ð ^_ÐZ^ð ^_Ø15ð^_ØGKð^_ØXqó^_ñB1h˜#ð 1h¨Dð 1h¸Tó 1hðhm˜#ð m¨Cð m¸Cð mÈdð mÐW[ó mð&˜3ð  4ó ô< ô ñ
D sð D¸dð DÐbfð Dð  sMó DðN<O Nð <O°tó <Oô~ Iô ð
9m°#ð 9mÐ:Wô 9mr-   