
    -hhB              	          / S Qr SSKJr  SSKrSSKrSSKJr  SSKJr  Sr	Sr
SrS	rS
rSrSr0 S\	\	S4_S\	\	S4_S\	\	S4_S\	\	S4_S\	\	S4_S\	\	S4_S\	\	S4_S\	\	S4_S\	\	S4_S\	\	S4_S\	\	S4_S\	\	S4_S
S_S\
\
S4_S\
\
S4_S\
SS4_S\
SS4_\
SS4\
\
S4\\
S4S .Er0 S!S_S"S_S#S_S$S_S%S_S&S_S'S_S(S_S)S_S*S_S+S_S,S_S-S_S.S_S/S_S0S_S1S_SSSS2SS3S
S4.ErS5S6SS7.rSS8 jrS9 rS: rS; r " S< S=5      rg)>)Charset	add_aliasadd_charset	add_codec    )partialN)errors)encode_7or8bit            us-asciizunknown-8bit z
iso-8859-1z
iso-8859-2z
iso-8859-3z
iso-8859-4z
iso-8859-9ziso-8859-10ziso-8859-13ziso-8859-14ziso-8859-15ziso-8859-16zwindows-1252viscii)NNNbig5gb2312zeuc-jpiso-2022-jp	shift_jisutf-8)r   zkoi8-rr   latin_1zlatin-1latin_2zlatin-2latin_3zlatin-3latin_4zlatin-4latin_5zlatin-5latin_6zlatin-6latin_7zlatin-7latin_8zlatin-8latin_9zks_c_5601-1987zeuc-kr)zlatin-9latin_10zlatin-10cp949euc_jpeuc_krasciieucgb2312_cnbig5_tw)r   r   r   c                 D    U[         :X  a  [        S5      eXU4[        U '   g )Nz!SHORTEST not allowed for body_enc)SHORTEST
ValueErrorCHARSETS)charset
header_encbody_encoutput_charsets       6/opt/python-3.13.8/usr/lib/python3.13/email/charset.pyr   r   j   s'    . 8<==#~>HW    c                     U[         U '   g N)ALIASES)alias	canonicals     r.   r   r      s     GENr/   c                     U[         U '   g r1   )	CODEC_MAP)r*   	codecnames     r.   r   r      s     #Igr/   c                 \    U[         :X  a  U R                  SS5      $ U R                  U5      $ )Nr#   surrogateescape)UNKNOWN8BITencode)stringcodecs     r.   _encoder>      s+    }}W&788}}U##r/   c                   P    \ rS rSr\4S jrS rS rS rS r	S r
S rS	 rS
 rSrg)r      c                     [        U[        5      (       a  UR                  S5        O[        US5      n UR                  5       n[        R                  X5      U l	        [        R                  U R                  [        [        S 45      u  p#nU(       d  U R                  nX l        X0l        [        R                  XD5      U l        [         R                  U R                  U R                  5      U l        [         R                  U R                  U R                  5      U l        g ! [         a    [        R
                  " U5      ef = f)Nr#   )
isinstancestrr;   UnicodeErrorr   CharsetErrorlowerr2   getinput_charsetr)   r'   BASE64header_encodingbody_encodingr-   r6   input_codecoutput_codec)selfrH   hencbencconvs        r.   __init__Charset.__init__   s
   
	5---$$W- #M7 ; &++-$[[F $<<(:(:)164(@BD%%D#!%kk$5 %==););)-););=%MM$*=*=*.*=*=?)  	5%%m44	5s   &D& D& &!Ec                 6    U R                   R                  5       $ r1   )rH   rF   rN   s    r.   __repr__Charset.__repr__   s    !!''))r/   c                 L    [        U 5      [        U5      R                  5       :H  $ r1   )rC   rF   )rN   others     r.   __eq__Charset.__eq__   s    4yCJ,,...r/   c                 b    U R                   [        :X  a  gU R                   [        :X  a  g[        $ )Nzquoted-printablebase64)rK   QPrI   r	   rU   s    r.   get_body_encodingCharset.get_body_encoding   s,     #%6)!!r/   c                 @    U R                   =(       d    U R                  $ r1   )r-   rH   rU   s    r.   get_output_charsetCharset.get_output_charset
  s     ""8d&8&88r/   c                     U R                   =(       d    Sn[        X5      nU R                  U5      nUc  U$ UR                  X25      $ )Nr   )rM   r>   _get_encoderheader_encode)rN   r<   r=   header_bytesencoder_modules        r.   rf   Charset.header_encode  sJ     !!/Zv-**<8!M++L@@r/   c                    U R                   =(       d    Sn[        X5      nU R                  U5      n[        UR                  US9nU R                  5       n[        U5      [        -   n/ n	/ n
[        U5      U-
  nU H  nU
R                  U5        [        R                  U
5      nUR                  [        X5      5      nX:  d  MJ  U
R                  5         U	(       d  U
(       d  U	R                  S 5        O7[        R                  U
5      n[        X5      nU	R                  U" U5      5        U/n
[        U5      U-
  nM     [        R                  U
5      n[        X5      nU	R                  U" U5      5        U	$ )Nr   )r*   )rM   r>   re   r   rf   rb   lenRFC2047_CHROME_LENnextappendEMPTYSTRINGjoinheader_lengthpop)rN   r<   
maxlengthsr=   rg   rh   encoderr*   extralinescurrent_linemaxlen	character	this_linelengthjoined_lines                   r.   header_encode_linesCharset.header_encode_lines%  sL   $ !!/Zv-**<8.66F ))+G11 j!E)I	*#((6I#11')2MNF  "\LL&"-"2"2<"@K#*;#>LLL!67 ){j)E1    "&&|4{2W\*+r/   c                    U R                   [        :X  a  [        R                  $ U R                   [        :X  a  [        R
                  $ U R                   [        :X  ac  [        R                  R                  U5      n[        R
                  R                  U5      nX#:  a  [        R                  $ [        R
                  $ g r1   )rJ   rI   email
base64mimer^   
quoprimimer'   rq   )rN   rg   len64lenqps       r.   re   Charset._get_encoderb  s    6)###!!R'###!!X-$$22<@E$$22<@E}''''''r/   c                 @   U(       d  U$ U R                   [        L aO  [        U[        5      (       a  UR	                  U R
                  5      n[        R                  R                  U5      $ U R                   [        L a`  [        U[        5      (       a  UR	                  U R
                  5      nUR                  S5      n[        R                  R                  U5      $ [        U[        5      (       a*  UR	                  U R
                  5      R                  S5      nU$ )Nlatin1r#   )rK   rI   rB   rC   r;   r-   r   r   body_encoder^   decoder   )rN   r<   s     r.   r   Charset.body_encodeq  s     M'&#&&t':':;##//772% &#&&t':':;]]8,F##//77&#&&t':':;BB7KMr/   )rK   rJ   rH   rL   r-   rM   N)__name__
__module____qualname____firstlineno__DEFAULT_CHARSETrR   rV   rZ   r_   rb   rf   r}   re   r   __static_attributes__ r/   r.   r   r      s8    X &5 ?B*/"*9A&;zr/   r   )__all__	functoolsr   email.base64mimer   email.quoprimimer   email.encodersr	   r^   rI   r'   rl   r   r:   ro   r)   r2   r6   r   r   r   r>   r   r   r/   r.   <module>r      s  
     )   Br- Br- Br-	
 Br- Br- Br- Br- Br- Br-  Br-!" Br-#$ Br-%& -'( Fv-)* Fv-+, Ft6-. Ft6/0 t-v-vw/5>|| | |	
 | | | | | | } } } } }  }!" }#$ 1< " 	?8#$l lr/   