o ?OgPQã@sÞ gd¢ZddlZddlZddlZddlZddlmZddlmZm Z ddl m Z ddl m Z dZdZe d ¡Ze d ej¡Ze d ¡ZGd d „d ƒZGdd„deƒZdZGdd„deƒZeeejdƒƒZdeZejZdS))Ú GeneratorÚDecodedGeneratorÚBytesGeneratoréN)Údeepcopy)ÚStringIOÚBytesIO)Ú_has_surrogates)ÚHeaderWriteErrorÚ_Ú z \r\n|\r|\nz^From z\r\n[^ \t]|\r[^ \n\t]|\n[^ \t]c@s®eZdZ d&ddœdd„Zdd„Zd'dd „Zd d „Zd d „Zdd„Zdd„Z dd„Z dd„Z dd„Z dd„Z e Zdd„Zdd„Zdd„Zd d!„Zed(d"d#„ƒZed$d%„ƒZdS))rN©ÚpolicycCs8 |dur|dur dn|j}||_||_||_||_dS)NT)Ú mangle_from_Ú_fpÚ _mangle_from_Ú maxheaderlenr )ÚselfÚoutfprrr ©rú6/opt/alt/python310/lib64/python3.10/email/generator.pyÚ__init__&s zGenerator.__init__cCs|j |¡dS©N)rÚwrite©rÚsrrrrFszGenerator.writeFcCsä |jdur |jn|j}|dur|j|d}|jdur"|j|jd}|j|_| |j¡|_d|_| |j¡|_|j}|j}z-||_||_|r]|  ¡}|sUdt   t   ¡¡}|  ||j¡|  |¡W||_||_dS||_||_w)N)Úlinesep©Zmax_line_lengthÚz From nobody )r ÚclonerrÚ_NLÚ_encodeÚ _encoded_NLZ_EMPTYÚ_encoded_EMPTYZ get_unixfromÚtimeÚctimerÚ_write)rÚmsgÚunixfromrr Zold_gen_policyZold_msg_policyZufromrrrÚflattenJs2    ÿzGenerator.flattencCs |j||jd|jdS©Nr )Ú __class__rr )rÚfprrrr{s ýzGenerator.clonecCótƒSr)r©rrrrÚ _new_bufferszGenerator._new_buffercCs|Srrrrrrr “szGenerator._encodecCsX|sdSt |¡}|dd…D] }| |¡| |j¡q|dr*| |d¡dSdS)Néÿÿÿÿ)ÚNLCREÚsplitrr)rÚlinesÚlinerrrÚ _write_lines—s  ÿzGenerator._write_linescCsÐ|j}zd|_| ¡|_}| |¡W||_|j}|`n ||_|j}|`w|rJt|ƒ}| d¡dur:|d|d<n| d|d¡| d|d¡t|ddƒ}|durZ| |¡n||ƒ|j  |  ¡¡dS)Núcontent-transfer-encodingrúContent-Transfer-Encodingú content-typeéÚ_write_headers) rÚ _munge_cter.Ú _dispatchrÚgetZreplace_headerÚgetattrr9rÚgetvalue)rr&ZoldfpZsfpZ munge_cteÚmethrrrr%§s,  þ  zGenerator._writecCst| ¡}| ¡}t ||f¡ dd¡}t|d|dƒ}|dur4| dd¡}t|d|dƒ}|dur4|j}||ƒdS)Nú-r Z_handle_)Úget_content_maintypeÚget_content_subtypeÚ UNDERSCOREÚjoinÚreplacer=Ú _writeBody)rr&ÚmainÚsubZspecificr?Zgenericrrrr;Îs  zGenerator._dispatchcCsŠ| ¡D]8\}}|j ||¡}|jjr7|jj}| |jj¡s(td|›d|›ƒ‚t |  |¡¡r7td|›ƒ‚|  |¡q|  |j ¡dS)Nz folded header does not end with z: z folded header contains newline: ) Ú raw_itemsr ZfoldZverify_generated_headersrÚendswithr ÚNEWLINE_WITHOUT_FWSPÚsearchÚ removesuffixrr)rr&ÚhÚvZfoldedrrrrr9âsÿÿ zGenerator._write_headerscCsž| ¡}|dur dSt|tƒstdt|ƒƒ‚t|jƒr?| d¡}|dur?t|ƒ}|d=|  ||¡| ¡}|d|df|_ |j rHt   d|¡}| |¡dS)Nzstring payload expected: %sÚcharsetr5r7ú>From )Ú get_payloadÚ isinstanceÚstrÚ TypeErrorÚtyperÚ_payloadZ get_paramrZ set_payloadr:rÚfcrerHr4)rr&ÚpayloadrPrrrÚ _handle_textõs$    ÿ zGenerator._handle_textc Cs–g}| ¡}|dur g}nt|tƒr| |¡dSt|tƒs!|g}|D]}| ¡}| |¡}|j|d|jd|  |  ¡¡q#|  ¡}|sU|j   |¡}| |¡}| |¡|jdurs|jret d|j¡} n|j} | | ¡| |j¡| d||j¡|rˆ|j | d¡¡|D]} | |jd||j¡|j | ¡qŠ| |jd|d|j¡|jdurÉ|jr¿t d|j¡} n|j} | | ¡dSdS)NF©r'rrQz--r)rRrSrTrÚlistr.rr(rÚappendr>Z get_boundaryr!rDÚ_make_boundaryZ set_boundaryÚpreamblerrXrHr4rÚpopÚepilogue) rr&ZmsgtextsZsubpartsÚpartrÚgÚboundaryZalltextr_Z body_partrarrrÚ_handle_multipart sL           ûzGenerator._handle_multipartcCs4|j}|jdd|_z | |¡W||_dS||_w)Nrr)r rre)rr&ÚprrrÚ_handle_multipart_signedGs  z"Generator._handle_multipart_signedcCsšg}| ¡D]:}| ¡}| |¡}|j|d|jd| ¡}| |j¡}|r;|d|jkr;|  |j  |dd…¡¡q|  |¡q|j   |j  |¡¡dS)NFr[r/) rRr.rr(rr>r1r!r"r]rDrr)rr&ZblocksrbrrcÚtextr2rrrÚ_handle_message_delivery_statusRs    z)Generator._handle_message_delivery_statuscCs^| ¡}| |¡}|j}t|tƒr"|j| d¡d|jd| ¡}n|  |¡}|j   |¡dS)NrFr[) r.rrWrSr\r(rRrr>r rr)rr&rrcrYrrrÚ_handle_messagegs    zGenerator._handle_messagecCsxt tj¡}dt|d}|dur|S|}d} | dt |¡dtj¡}|  |¡s/ |S|dt |ƒ}|d7}q) Nz===============z==rTz^--z(--)?$Ú.r8) ÚrandomZ randrangeÚsysÚmaxsizeÚ_fmtÚ _compile_reÚreÚescapeÚ MULTILINErLrT)ÚclsrhÚtokenrdÚbZcounterZcrerrrr^€s  þûzGenerator._make_boundarycCs t ||¡Sr)rqÚcompile©rtrÚflagsrrrrp’s zGenerator._compile_re)NN)FNr)Ú__name__Ú __module__Ú __qualname__rrr(rr.r r4r%r;r9rZrFrergrirjÚ classmethodr^rprrrrrs0  ÿ 1':  rcsNeZdZ dd„Zdd„Zdd„Zdd„Z‡fd d „ZeZe d d „ƒZ ‡Z S) rcCs|j | dd¡¡dS)NÚasciiÚsurrogateescape)rrÚencoderrrrr¤szBytesGenerator.writecCr,r)rr-rrrr.§szBytesGenerator._new_buffercCs | d¡S©Nr~)r€rrrrr ªs zBytesGenerator._encodecCs8| ¡D]\}}|j |j ||¡¡q| |j¡dSr)rIrrr Z fold_binaryr)rr&rNrOrrrr9­szBytesGenerator._write_headerscs^|jdurdSt|jƒr%|jjdks%|jrt d|j¡|_| |j¡dStt |ƒ  |¡dS)NZ7bitrQ) rWrr Zcte_typerrXrHr4ÚsuperrrZ)rr&©r*rrrZµs zBytesGenerator._handle_textcCst | d¡|¡Sr)rqrwr€rxrrrrpÄszBytesGenerator._compile_re) rzr{r|rr.r r9rZrFr}rpÚ __classcell__rrrƒrr—s   rzD[Non-text (%(type)s) part of message omitted, filename %(filename)s]c@s&eZdZ dddœdd„Zdd„ZdS)rNr cCs2 tj|||||d|durt|_dS||_dSr))rrÚ_FMTro)rrrrZfmtr rrrrÒs ÿ  zDecodedGenerator.__init__c Cs„| ¡D];}| ¡}|dkrt|jdd|dq|dkrqt|j| ¡| ¡| ¡| d¡| dd¡| d d ¡d œ|dqdS) NrhF)Údecode)ÚfileZ multipartz [no filename]zContent-Descriptionz[no description]r6z [no encoding])rVÚmaintypeZsubtypeÚfilenameÚ descriptionÚencoding) ÚwalkrAÚprintrRroZget_content_typerBÚ get_filenamer<)rr&rbrˆrrrr;ðs* ÿÿù ÷øzDecodedGenerator._dispatch)NNN)rzr{r|rr;rrrrrÌs  ÿ rr8z%%0%dd)Ú__all__rqrmr#rlÚcopyrÚiorrZ email.utilsrZ email.errorsr rCÚNLrwr0rsrXrKrrr…rÚlenÚreprrnZ_widthror^rrrrÚs0     }3;