
    -hh                        S S/r SSKrSSKrSSKrSSKJrJr  SSKJr  SSKJ	r	  SSK
Jr  SSKJr  SS	KJr  \R                   rS
r\R$                  " S5      rS rSS jrS rS rS r " S S 5      r " S S\5      r " S S\5      rg)MessageEmailMessage    N)BytesIOStringIO)utils)errors)compat32charset)decode_bz; z[ \(\)<>@,;:\\"/\[\]\?=]c                     [        U 5      R                  S5      u  pnU(       d  UR                  5       S 4$ UR                  5       UR                  5       4$ )N;)str	partitionstrip)paramasepbs       6/opt/python-3.13.8/usr/lib/python3.13/email/message.py_splitparamr      sF    
 E
$$S)IAAwwy$779aggi    c                    Ub  [        U5      S:  a  [        U[        5      (       a/  U S-  n [        R                  " US   US   US   5      nU < SU< 3$  UR                  S5        U(       d  [        R                  U5      (       a  U < S	[        R                  " U5      < S
3$ U < SU< 3$ U $ ! [         a)    U S-  n [        R                  " USS5      nU < SU< 3s $ f = f)Nr   *      =asciizutf-8 z="")
len
isinstancetupler   encode_rfc2231encodeUnicodeEncodeError	tspecialssearchquote)r   valuer)   s      r   _formatparamr+   '   s     SZ!^ eU##SLE((q58U1XFE#U++0W% I$$U++ %u{{5'9::#U++ & 0,,UGR@"'//0s   B3 30C&%C&c                    S[        U 5      -   n / nU S S S:X  Ga-  U SS  n U R                  S5      nUS:  a{  U R                  SSU5      U R                  SSU5      -
  S-  (       aL  U R                  SUS-   5      nUS:  a1  U R                  SSU5      U R                  SSU5      -
  S-  (       a  ML  US:  a  [        U 5      nU S U nSU;   aK  UR	                  S5      nUS U R                  5       R                  5       S-   X4S-   S  R                  5       -   nUR                  UR                  5       5        XS  n U S S S:X  a  GM-  U$ )Nr   r   r   r    z\"r   r   )r   findcountr!   indexr   lowerappend)splistendfis        r   _parseparamr7   I   s>   c!fAE
BQ%3,abEffSkAg17733/!''%C2HHAM&&cAg&C Ag17733/!''%C2HHAMM7a&CdsG!8A"1##%+a!gmmo=AQWWYdG BQ%3, Lr   c                     [        U [        5      (       a"  U S   U S   [        R                  " U S   5      4$ [        R                  " U 5      $ )Nr   r   r   )r"   r#   r   unquote)r*   s    r   _unquotevaluer:   ]   sB    
 %Qxq5==q#:::}}U##r   c                 r   / n[        U R                  5       5      nU HI  nUR                  S5      (       d  M  UR                  S5      R	                  S5      u  pEn [        USS9    O   [        S5      eU HT  nU(       d  [        S5      eUR                  S5      S:X  a    O, [        R                  " U5      nUR                  U5        MV     SR                  U5      $ ! [         a     M  f = f! [        R                   a0    US	   S
-
  S-  S-  S-   S-  n[        R                  " US U 5      n Nzf = f)Ns   begin        )basez`begin` line not foundzTruncated inputs    	
s   endr       ?            r   )iter
splitlines
startswithremoveprefixr   int
ValueErrorr   binasciia2b_uuErrorr1   join)	encodeddecoded_linesencoded_lines_iterlinemode_pathdecoded_linenbytess	            r   
_decode_uurW   h   s3   Mg0023"??9%% --i8BB4HMDTDq!  # 122".//ZZ%/	:#??40L
 	\* # 88M""'   ~~ 	:Q
b(A-1a7F#??4=9L	:s%   
C!%C2!
C/.C/2AD65D6c                   x   \ rS rSr\4S jrS rS3S jrS rS4S jr	S	 r
S
 rS rS rS5S jrS6S jrS rS rS rS rS rS rS rS rS rS rS rS6S jrS rS rS6S jrS rS r S  r!S! r"S" r#S# r$S$ r%S% r&S7S& jr'  S7S' jr(  S8S( jr)S9S) jr*S:S* jr+S6S+ jr,S6S, jr-S- r.S6S. jr/S6S/ jr0S0 r1SS1K2J3r3  S2r4g);r      c                     Xl         / U l        S U l        S U l        S U l        S =U l        U l        / U l        SU l        g )N
text/plain)	policy_headers	_unixfrom_payload_charsetpreambleepiloguedefects_default_type)selfr\   s     r   __init__Message.__init__   s@    (,,)r   c                 "    U R                  5       $ N)	as_stringre   s    r   __str__Message.__str__   s     ~~r   r   Nc                     SSK Jn  Uc  U R                  OUn[        5       nU" USUUS9nUR	                  XS9  UR                  5       $ )Nr   )	GeneratorF)mangle_from_maxheaderlenr\   unixfrom)email.generatorro   r\   r   flattengetvalue)re   rs   rq   r\   ro   fpgs          r   rj   Message.as_string   sN     	. &FZb#(#/#% 	
		$	*{{}r   c                 "    U R                  5       $ ri   )as_bytesrk   s    r   	__bytes__Message.__bytes__   s     }}r   c                     SSK Jn  Uc  U R                  OUn[        5       nU" USUS9nUR	                  XS9  UR                  5       $ )Nr   )BytesGeneratorF)rp   r\   rr   )rt   r   r\   r   ru   rv   )re   rs   r\   r   rw   rx   s         r   r{   Message.as_bytes   sE     	3 &FY2E&A			$	*{{}r   c                 6    [        U R                  [        5      $ ri   )r"   r_   listrk   s    r   is_multipartMessage.is_multipart   s    $--..r   c                     Xl         g ri   r^   )re   rs   s     r   set_unixfromMessage.set_unixfrom   s    !r   c                     U R                   $ ri   r   rk   s    r   get_unixfromMessage.get_unixfrom   s    ~~r   c                     U R                   c	  U/U l         g  U R                   R                  U5        g ! [         a    [        S5      ef = f)Nz=Attach is not valid on a message with a non-multipart payload)r_   r1   AttributeError	TypeError)re   payloads     r   attachMessage.attach   sO     == $IDM:$$W-! : !9 : ::s	   4 A
c                    U R                  5       (       a&  U(       a  g Uc  U R                  $ U R                  U   $ Ub@  [        U R                  [        5      (       d!  [	        S[        U R                  5      -  5      eU R                  nU R                  SS5      n[        US5      (       a  UR                  nO'[        U5      R                  5       R                  5       nU(       di  [        U[        5      (       aR  [        R                  " U5      (       a7   UR                  SS5      n UR                  U R!                  S5      S5      nU$ U$ [        U[        5      (       a   UR                  SS5      nOUnUS	:X  a  [&        R(                  " U5      $ US
:X  aP  [+        SR-                  UR/                  5       5      5      u  pgU H  nU R0                  R3                  X5        M      U$ US;   a   [5        U5      $ [        U[        5      (       a  U$ U$ ! ["         a    UR                  SS5      n U$ f = f! [$         a     U$ f = f! [$         a    UR                  S5      n Nf = f! [6         a    Us $ f = f)NzExpected list, got %szcontent-transfer-encodingr   cter   surrogateescapereplaceraw-unicode-escapezquoted-printablebase64r   )z
x-uuencodeuuencodeuuezx-uue)r   r_   r"   r   r   typegethasattrr   r   r   r0   r   _has_surrogatesr%   decodeget_content_charsetLookupErrorr&   quopridecodestringr   rM   rE   r\   handle_defectrW   rI   )	re   r6   r   r   r   bpayloadr*   rc   defects	            r   get_payloadMessage.get_payload   sO   D y}}$}}Q'' =DMM4!@!@3d4==6IIJJ--hh2B73''C c(.."((*C'3''E,A,A',J,J&~~g7HIHF"*//$2J2J72SU^"_
 N7Ngs##@">>'3DE H$$&&x00H_ &chhx/B/B/D&EFNE!))$7 "L>> !(++ gs##OC ' F"*//'9"E N	F) N & @
 #>>*>?@(    sT   H= -!H (I 6
I/ H:6H= 9H::H= =
I
II,+I,/I>=I>c                 :   [        US5      (       aF  Uc  Xl        g [        U[        5      (       d  [        U5      nUR	                  UR
                  S5      n[        US5      (       a  UR                  SS5      U l        OXl        Ub  U R                  U5        g g )Nr%   r   r   r   )r   r_   r"   Charsetr%   output_charsetr   set_charset)re   r   r   s      r   set_payloadMessage.set_payloadQ  s     7H%% 'gw//!'*nnW%;%;=NOG7H%%#NN74EFDM#MW% r   c                    Uc  U R                  S5        S U l        g [        U[        5      (       d  [        U5      nXl        SU ;  a  U R	                  SS5        SU ;  a   U R	                  SSUR                  5       S9  O U R                  SUR                  5       5        XR                  5       :w  a   UR                  U R                  5      U l        SU ;  a  UR                  5       n U" U 5        g g ! [         a}    U R                  nU(       a?   UR                  SS	5      nO+! [         a    UR                  UR                  5      n Of = fUR                  U5      U l        U R	                  SU5         g f = f)
Nr   MIME-Version1.0Content-Typer[   r
   zContent-Transfer-Encodingr   r   )	del_paramr`   r"   r   
add_headerget_output_charset	set_parambody_encoder_   get_body_encodingr   r%   UnicodeErrorr   )re   r   r   r   s       r   r   Message.set_charsete  s_    ?NN9% DM'7++g&G%OONE2%OONL$+$>$>$@  B NN9g&@&@&BC0022#//>DM&d2++-CBD	 3  B --I")..:K"L' I")..1G1G"HI ' 3 3G < ;SABs6   +C5 5E<D&%E<&%EE<E+E<;E<c                     U R                   $ ri   )r`   rk   s    r   get_charsetMessage.get_charset  s     }}r   c                 ,    [        U R                  5      $ ri   )r!   r]   rk   s    r   __len__Message.__len__  s    4==!!r   c                 $    U R                  U5      $ ri   )r   )re   names     r   __getitem__Message.__getitem__  s     xx~r   c                 r   U R                   R                  U5      nU(       aa  UR                  5       nSnU R                   H?  u  pgUR                  5       U:X  d  M  US-  nXS:  d  M'  [	        SR                  X15      5      e   U R                  R                  U R                   R                  X5      5        g )Nr   r   z/There may be at most {} {} headers in a message)r\   header_max_countr0   r]   rI   formatr1   header_store_parse)re   r   val	max_countlnamefoundkvs           r   __setitem__Message.__setitem__  s     KK006	JJLEE779%QJE)( *88>y8OQ Q	 & 	T[[;;DFGr   c                     UR                  5       n/ nU R                   H-  u  p4UR                  5       U:w  d  M  UR                  X445        M/     X l        g ri   )r0   r]   r1   )re   r   
newheadersr   r   s        r   __delitem__Message.__delitem__  sI    
 zz|
MMDAwwyD !!1&) " #r   c                 x    UR                  5       nU R                   H  u  p4X#R                  5       :X  d  M    g   g)NTF)r0   r]   )re   r   
name_lowerr   r   s        r   __contains__Message.__contains__  s1    ZZ\
MMDAWWY& " r   c              #   >   #    U R                    H	  u  pUv   M     g 7fri   r]   )re   fieldr*   s      r   __iter__Message.__iter__  s      MMLEK *s   c                 P    U R                    VVs/ s H  u  pUPM	     snn$ s  snnf ri   r   re   r   r   s      r   keysMessage.keys  s"     #mm,mdam,,,s   "c                     U R                    VVs/ s H   u  pU R                  R                  X5      PM"     snn$ s  snnf ri   r]   r\   header_fetch_parser   s      r   valuesMessage.values  s>     !MM+)DA ..q4)+ 	+ +s   ';c           	          U R                    VVs/ s H!  u  pXR                  R                  X5      4PM#     snn$ s  snnf ri   r   r   s      r   itemsMessage.items  sA     !MM+)DA KK22189)+ 	+ +s   (<c                     UR                  5       nU R                   H6  u  p4UR                  5       U:X  d  M  U R                  R                  X45      s  $    U$ ri   )r0   r]   r\   r   )re   r   failobjr   r   s        r   r   Message.get  sI     zz|MMDAwwyD {{55a;; " r   c                 <    U R                   R                  X45        g ri   )r]   r1   )re   r   r*   s      r   set_rawMessage.set_raw  s    
 	d]+r   c                 H    [        U R                  R                  5       5      $ ri   )rD   r]   copyrk   s    r   	raw_itemsMessage.raw_items  s    
 DMM&&())r   c                     / nUR                  5       nU R                   HE  u  pEUR                  5       U:X  d  M  UR                  U R                  R	                  XE5      5        MG     U(       d  U$ U$ ri   )r0   r]   r1   r\   r   )re   r   r   r   r   r   s         r   get_allMessage.get_all  s\     zz|MMDAwwyD dkk<<QBC " Nr   c           	      4   / nUR                  5        HV  u  pVUc#  UR                  UR                  SS5      5        M+  UR                  [        UR                  SS5      U5      5        MX     Ub  UR	                  SU5        [
        R                  U5      X'   g )NrS   -r   )r   r1   r   r+   insert	SEMISPACErM   )re   _name_value_paramspartsr   r   s          r   r   Message.add_header)  s{    ( MMODAyQYYsC01\!))C*=qAB	 $
 LLF#nnU+r   c                 0   UR                  5       n[        [        [        U R                  5      5      U R                  5       HF  u  nu  pEUR                  5       U:X  d  M  U R
                  R                  XB5      U R                  U'     g    [        U5      eri   )r0   zipranger!   r]   r\   r   KeyError)re   r   r   r6   r   r   s         r   replace_headerMessage.replace_headerG  ss     U3t}}#56FIAvwwyE!#';;#A#A!#La  G
 5/!r   c                     [        5       nU R                  SU5      nX!L a  U R                  5       $ [        U5      S   R	                  5       nUR                  S5      S:w  a  gU$ )Ncontent-typer   /r   r[   )objectr   get_default_typer   r0   r.   )re   missingr*   ctypes       r   get_content_typeMessage.get_content_typeZ  sa     (1((**E"1%++-;;sq r   c                 J    U R                  5       nUR                  S5      S   $ )Nr  r   r  splitre   r  s     r   get_content_maintypeMessage.get_content_maintyper  &     %%'{{3""r   c                 J    U R                  5       nUR                  S5      S   $ )Nr  r   r  r  s     r   get_content_subtypeMessage.get_content_subtype{  r  r   c                     U R                   $ ri   rd   rk   s    r   r	  Message.get_default_type  s     !!!r   c                     Xl         g ri   r  r  s     r   set_default_typeMessage.set_default_type  s
     #r   c                 n   [        5       nU R                  X#5      nXCL a  U$ / n[        U5       HJ  n UR                  SS5      u  pxUR	                  5       nUR	                  5       nUR                  Xx45        ML     [        R                  " U5      nU$ ! [
         a    UR	                  5       nSn NLf = f)Nr   r   r   )	r  r   r7   r  r   rI   r1   r   decode_params)	re   r   headerr
  r*   paramspr   r   s	            r   _get_params_preserveMessage._get_params_preserve  s     ()NU#AGGCO	zz|iik
 MM4+& $ $$V,  wwys   4BB43B4c                     [        5       nU R                  XB5      nXTL a  U$ U(       a"  U VVs/ s H  u  pgU[        U5      4PM     snn$ U$ s  snnf ri   )r  r#  r:   )re   r   r   r9   r
  r!  r   r   s           r   
get_paramsMessage.get_params  sT     (**7;N6<=fdaQa()f==M >s   Ac                     X0;  a  U$ U R                  X#5       H?  u  pVUR                  5       UR                  5       :X  d  M)  U(       a  [        U5      s  $ Us  $    U$ ri   )r#  r0   r:   )re   r   r   r   r9   r   r   s          r   	get_paramMessage.get_param  sT    0 N--g>DAwwyEKKM)(++H ? r   c                    [        U[        5      (       d  U(       a  XVU4nX0;  a  UR                  5       S:X  a  SnOU R                  U5      nU R	                  XS9(       d6  U(       d  [        XU5      nO[        R                  U[        XU5      /5      nOySnU R                  UUS9 Hc  u  pSnU	R                  5       UR                  5       :X  a  [        XU5      nO[        XU5      nU(       d  UnMM  [        R                  X/5      nMe     XR                  U5      :w  a   U(       a  U R                  X85        g X	 XU'   g g )Nr  r[   )r   r   r   r9   )
r"   r#   r0   r   r)  r+   r   rM   r&  r  )re   r   r*   r   requoter   languager   r  	old_param	old_valueappend_params               r   r   Message.set_param  s%   $ %''G.E&,,.N"B EHHV$E~~e~3$U7;!Lw?@B E(,v@G )8 )I$	!??$5#/g#FL#/	g#NL(E%NNE+@AE)I HHV$$##F2L$V %r   c           	      .   X ;  a  g SnU R                  X#S9 H_  u  pVUR                  5       UR                  5       :w  d  M)  U(       d  [        XVU5      nM>  [        R	                  U[        XVU5      /5      nMa     X@R                  U5      :w  a  X	 X@U'   g g )Nr   r,  )r&  r0   r+   r   rM   r   )re   r   r   r-  	new_ctyper"  r   s          r   r   Message.del_param  s     	OO6OCDAwwyEKKM)  ,Q7 ;I )	0<Q70K0M !NI D (($L )r   c                     UR                  S5      S:X  d  [        eUR                  5       S:X  a  U S	 SU S'   X ;  a  XU'   g U R                  X#S9nX	 XU'   USS   H  u  pVU R	                  XVX#5        M     g )Nr  r   r  zmime-versionr   r   r,  )r.   rI   r0   r&  r   )re   r   r   r-  r!  r"  r   s          r   set_typeMessage.set_type,  s      zz#!#<<>^+^$#(D L@LV12JDANN11 r   c                     [        5       nU R                  SUS5      nX2L a  U R                  SUS5      nX2L a  U$ [        R                  " U5      R	                  5       $ )Nfilenamecontent-dispositionr   r  )r  r)  r   collapse_rfc2231_valuer   )re   r   r
  r:  s       r   get_filenameMessage.get_filenameL  s[     (>>*g7LM~~fg~FHN++H5;;==r   c                     [        5       nU R                  SU5      nX2L a  U$ [        R                  " U5      R	                  5       $ )Nboundary)r  r)  r   r<  rstrip)re   r   r
  r@  s       r   get_boundaryMessage.get_boundary\  s@     (>>*g6N++H5<<>>r   c                    [        5       nU R                  US5      nX2L a  [        R                  " S5      e/ nSnU HE  u  pgUR	                  5       S:X  a  UR                  SSU-  45        SnM3  UR                  Xg45        MG     U(       d  UR                  SSU-  45        / nU R                   H  u  pU	R	                  5       S:X  a  / nU H6  u  pU
S:X  a  UR                  U5        M  UR                  U< SU
< 35        M8     [        R                  U5      nUR                  U R                  R                  X5      5        M  UR                  X45        M     Xl        g )	Nr  zNo Content-Type header foundFr@  z"%s"Tr   r   )r  r#  r   HeaderParseErrorr0   r1   r]   r   rM   r\   r   )re   r@  r
  r!  	newparamsfoundppkpvr   hr   r   r   r   s                 r   set_boundaryMessage.set_boundaryi  sD    (**7NC ))*HII	FBxxzZ'  *fx.?!@A  "*   j&8*;<=
MMDAwwyN*%DABwQ1%56	 &
  nnU+!!$++"@"@"HI !!1&) " #r   c                 j   [        5       nU R                  SU5      nX2L a  U$ [        U[        5      (       a.  US   =(       d    Sn US   R	                  S5      n[        XT5      n UR	                  S5        UR                  5       $ ! [        [        4 a    US   n N9f = f! [         a    Us $ f = f)Nr   r   zus-asciir   r   )	r  r)  r"   r#   r%   r   r   r   r0   )re   r   r
  r   pcharsetr{   s         r   r   Message.get_content_charset  s     (..G4Ngu%%qz/ZH% #1:,,-ABh1	NN:& }}  . %!!*%
  	N	s$   B 'B# B B #B21B2c                 j    U R                  5        Vs/ s H  o"R                  U5      PM     sn$ s  snf ri   )walkr   )re   r   parts      r   get_charsetsMessage.get_charsets  s,      ?CiikJkd((1kJJJs   0c                 h    U R                  S5      nUc  g [        U5      S   R                  5       nU$ )Nr;  r   )r   r   r0   )re   r*   c_ds      r   get_content_dispositionMessage.get_content_disposition  s8     ./=% #))+
r   )rQ  )	r`   rd   r]   r_   r^   rc   rb   r\   ra   )Fr   N)FN)NFri   )Nr  T)r   TNr   F)r  T)r   T)5__name__
__module____qualname____firstlineno__r	   rf   rl   rj   r|   r{   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r	  r  r#  r&  r)  r   r   r7  r=  rB  rK  r   rS  rW  email.iteratorsrQ  __static_attributes__ r   r   r   r      s    ' 
* 
0
/": \|&(-B^"	H$
#-	+	+
",*$,<"&0##"#*, 5C D FJ5:1%f%,2@> ?,#\<K$
 %$r   c                      ^  \ rS rSrSU 4S jjrSU 4S jjrS rS rS rSS jr	1 S	kr
S
 rS rSS.S jrSS.S jrS rSS jrSS jrSS jrSS.S jrS rS rS rS rS rSrU =r$ )MIMEParti  Nc                 :   > Uc  SSK Jn  Un[        TU ]  U5        g )Nr   )default)email.policyrc  superrf   )re   r\   rc  	__class__s      r   rf   MIMEPart.__init__  s    >,F r   c                 d   > Uc  U R                   OUnUc  UR                  n[        TU ]  XU5      $ ri   )r\   max_line_lengthre  rj   )re   rs   rq   r\   rf  s       r   rj   MIMEPart.as_string  s7     !'F!11Lw @@r   c                 N    U R                  U R                  R                  SS9S9$ )NT)utf8r\   )rj   r\   clonerk   s    r   rl   MIMEPart.__str__  s%    ~~T[[%6%6D%6%A~BBr   c                 L    U R                  S5      nUc  S$ UR                  S:H  $ )Nr;  F
attachment)r   content_disposition)re   rV  s     r   is_attachmentMIMEPart.is_attachment  s+    hh,-uP)@)@L)PPr   c              #     #    UR                  5       (       a  g UR                  5       R                  S5      u  p4US:X  a  XB;   a  UR                  U5      U4v   g US:w  d  U R	                  5       (       d  g US:w  a1  UR                  5        H  nU R                  XR5       S h  vN   M     g SU;   a  UR                  S5      U4v   S nUR                  S5      nU(       a$  UR                  5        H  nUS   U:X  d  M  Un  O   Uc  UR                  5       nU(       a  US   OS nUb  U R                  Xb5       S h  vN   g g  N N7f)Nr  text	multipartrelatedstart
content-idr   )	rs  r  r  r/   r   
iter_parts
_find_bodyr)  r   )	re   rR  preferencelistmaintypesubtypesubpart	candidatery  subpartss	            r   r|  MIMEPart._find_body  sG     11399#>v(%++G4d;;{"$*;*;*=*=i??,??7CCC -&!''	2D99	w'??,<(E1 'I - '')H'/TI yAAA ! D Bs+   B"E
$E%AE
>E
?E E
E
c                 |    [        U5      nS nU R                  X5       H  u  pEXB:  d  M  UnUnUS:X  d  M    U$    U$ )Nr   )r!   r|  )re   r}  	best_priobodypriorR  s         r   get_bodyMIMEPart.get_body  sO     '	//$?JD 	19 @ r   >   rv  htmlrv  plainrw  rx  rw  alternativec              #     #    U R                  5       R                  S5      u  pUS:w  d  US:X  a  g U R                  5       n UR                  5       nUS:X  a  US:X  a}  U R                  S5      nU(       aI  Sn/ nU H-  nUR                  S5      U:X  a  SnM  UR                  U5        M/     U(       a  U S h  vN   g UR                  S	5        U S h  vN   g / n	U Hf  nUR                  5       R                  S5      u  pX4U R                  ;   a-  UR                  5       (       d  X);  a  U	R                  U5        Mb  Uv   Mh     g ! [         a     g f = f N N7f)
Nr  rw  r  rx  ry  Frz  Tr   )r  r  r   r   r   r)  r   r1   pop_body_typesrs  )
re   r~  r  r   r   ry  r   attachmentsrR  seens
             r   iter_attachmentsMIMEPart.iter_attachments,  s[     !11399#>{"g&>""$	LLNE
 {"w)'; NN7+E !Dxx-6 $#**40	 "
 ***IIaL D $ 5 5 7 = =c BH#t'7'77**,,1DG$J 7  		$ + sI   ?EE
 A'E9E:EEA4E

EEEEEc              #   l   #    U R                  5       (       a  U R                  5        S h  vN   g g  N7fri   )r   r   rk   s    r   r{  MIMEPart.iter_partsc  s0     
 ''))) )s   )424)content_managerc                `    Uc  U R                   R                  nUR                  " U /UQ70 UD6$ ri   )r\   r  get_contentre   r  argskws       r   r  MIMEPart.get_contentk  s2    ""kk99O**4=$="==r   c                b    Uc  U R                   R                  nUR                  " U /UQ70 UD6  g ri   )r\   r  set_contentr  s       r   r  MIMEPart.set_contentp  s/    ""kk99O##D64626r   c                 0   U R                  5       S:X  a4  U R                  5       nX!4-   nXB;   a  [        SR                  XA5      5      e/ n/ nU R                   HO  u  pxUR                  5       R                  S5      (       a  UR                  Xx45        M=  UR                  Xx45        MQ     U(       a9  [        U 5      " U R                  S9n	Xil        U R                  U	l
        U	/U l
        O/ U l
        XPl        SU-   U S'   Ub  U R                  SU5        g g )Nrw  zCannot convert {} to {}content-rm  z
multipart/r   r@  )r  r  rI   r   r]   r0   rF   r1   r   r\   r_   r   )
re   r  disallowed_subtypesr@  existing_subtypekeep_headerspart_headersr   r*   rR  s
             r   _make_multipartMIMEPart._make_multipartu  s   $$&+5#779"5
"B6 !:!A!A$"/ 0 0==KDzz|&&z22##TM2##TM2	 )
 :T[[1D(M MMDM!FDMDM$+g5^NN:x0  r   c                 *    U R                  SSU5        g )Nrx  )r  mixedr  re   r@  s     r   make_relatedMIMEPart.make_related  s    Y(@(Kr   c                 *    U R                  SSU5        g )Nr  )r  r  r  s     r   make_alternativeMIMEPart.make_alternative  s    ]JAr   c                 *    U R                  SSU5        g )Nr  r_  r  r  s     r   
make_mixedMIMEPart.make_mixed  s    Wb(3r   )_dispc                   U R                  5       S:w  d  U R                  5       U:w  a  [        U SU-   5      " 5         [        U 5      " U R                  S9nUR
                  " U0 UD6  U(       a
  SU;  a  X%S'   U R                  U5        g )Nrw  make_rm  r;  zContent-Disposition)r  r  getattrr   r\   r  r   )re   _subtyper  r  r  rR  s         r   _add_multipartMIMEPart._add_multipart  s{    %%';6((*h6D'H,-/Dz-$%"%*$6*/&'Dr   c                 4    U R                   " S/UQ7SS0UD6  g )Nrx  r  inliner  re   r  r  s      r   add_relatedMIMEPart.add_related  s    ICCHCCr   c                 0    U R                   " S/UQ70 UD6  g )Nr  r  r  s      r   add_alternativeMIMEPart.add_alternative  s    M7D7B7r   c                 4    U R                   " S/UQ7SS0UD6  g )Nr  r  rq  r  r  s      r   add_attachmentMIMEPart.add_attachment  s    GEdE,E"Er   c                      / U l         S U l        g ri   r]   r_   rk   s    r   clearMIMEPart.clear  s    r   c                     U R                    VVs/ s H.  u  pUR                  5       R                  S5      (       a  M+  X4PM0     snnU l         S U l        g s  snnf )Nr  )r]   r0   rF   r_   )re   nr   s      r   clear_contentMIMEPart.clear_content  sL    ,0MM BMDA !	 4 4Z @  !M BBs
   *AAr  ri   )FNN))rx  r  r  )rY  rZ  r[  r\  rf   rj   rl   rs  r|  r  r  r  r{  r  r  r  r  r  r  r  r  r  r  r  r  r^  __classcell__rf  s   @r   ra  ra    s    !A CQB:(1K5n* 26 >
 26 7
16LB4 59 D8F r   ra  c                   (   ^  \ rS rSrU 4S jrSrU =r$ )r   i  c                 >   > [         TU ]  " U0 UD6  SU ;  a  SU S'   g g )Nr   r   )re  r  )re   r  r  rf  s      r   r  EmailMessage.set_content  s,    T(R(%#(D  &r   r_  )rY  rZ  r[  r\  r  r^  r  r  s   @r   r   r     s    ) )r   )NT)__all__rJ   rer   ior   r   emailr   r   email._policybaser	   r   r`   email._encoded_wordsr   r   r   compiler'   r   r+   r7   r:   rW   r   ra  r   r_  r   r   <module>r     s    n
%  	      & % )


	 JJ23	  D($#>M% M%`\w \~)8 )r   