U ,aN@sdddgZddlZddlZddlZddlZddlmZddlmZm Z ddl m Z dZ d Z ed Zed ejZGd ddZGd ddeZdZGdddeZeeejdZdeZejZdS) GeneratorDecodedGeneratorBytesGeneratorN)deepcopy)StringIOBytesIO)_has_surrogates_ z \r\n|\r|\nz^From c@seZdZd&ddddZddZd'dd Zd d Zd d ZddZddZ ddZ ddZ ddZ ddZ e ZddZddZddZd d!Zed(d"d#Zed$d%ZdS))rNpolicycCs6|dkr|dkrdn|j}||_||_||_||_dS)NT) mangle_from__fp _mangle_from_ maxheaderlenr )selfoutfpr rr r4/opt/alt/python38/lib64/python3.8/email/generator.py__init__$s zGenerator.__init__cCs|j|dSN)rwritersrrrrDszGenerator.writeFcCs|jdkr|jn|j}|dk r*|j|d}|jdk rB|j|jd}|j|_||j|_d|_||j|_|j}|j}zL||_||_|r| }|sdt t }| ||j| |W5||_||_XdS)N)linesepZmax_line_lengthz From nobody )r clonerr_NL_encode _encoded_NLZ_EMPTY_encoded_EMPTYZ get_unixfromtimectimer_write)rmsgunixfromrr Zold_gen_policyZold_msg_policyZufromrrrflattenHs,  zGenerator.flattencCs|j||jd|jdSNr ) __class__rr )rfprrrrys zGenerator.clonecCstSr)rrrrr _new_bufferszGenerator._new_buffercCs|SrrrrrrrszGenerator._encodecCsT|sdSt|}|ddD]}||||jq|drP||ddS)N)NLCREsplitrr)rlineslinerrr _write_liness  zGenerator._write_linescCs|j}z"d|_||_}||W5||_|j}|`X|rt|}|ddkrd|d|d<n|d|d|d|dt|dd}|dkr||n|||j | dS)Ncontent-transfer-encodingrContent-Transfer-Encoding content-type_write_headers) r _munge_cter, _dispatchrgetZreplace_headergetattrr7rgetvalue)rr%ZoldfpZ munge_cteZsfpmethrrrr$s&   zGenerator._writecCst|}|}t||fdd}t|d|d}|dkrh|dd}t|d|d}|dkrh|j}||dS)N-r Z_handle_)get_content_maintypeget_content_subtype UNDERSCOREjoinreplacer; _writeBody)rr%mainsubZspecificr=Zgenericrrrr9s zGenerator._dispatchcCs6|D]\}}||j||q||jdSr) raw_itemsrr Zfoldrrr%hvrrrr7szGenerator._write_headerscCs|}|dkrdSt|ts.tdt|t|jr~|d}|dk r~t|}|d=| |||}|d|df|_ |j rt d|}||dS)Nzstring payload expected: %scharsetr3r5>From ) get_payload isinstancestr TypeErrortyper_payloadZ get_paramrZ set_payloadr8rfcrerFr2)rr%payloadrKrrr _handle_texts$     zGenerator._handle_textc Csg}|}|dkrg}n(t|tr2||dSt|tsB|g}|D]6}|}||}|j|d|jd| | qF| }|s|j |}||}|||jdk r|jrtd|j} n|j} || ||j|d||j|r|j|d|D],} ||jd||j|j| q||jd|d|j|jdk r|jrtd|j} n|j} || dS)NFr&rrLz--r)rMrNrOrlistr,rr'rappendr<Z get_boundaryr rB_make_boundaryZ set_boundarypreamblerrSrFr2rpopepilogue) rr%ZmsgtextsZsubpartspartrgboundaryZalltextrZZ body_partr\rrr_handle_multipartsJ           zGenerator._handle_multipartcCs0|j}|jdd|_z||W5||_XdS)Nrr)r rr`)rr%prrr_handle_multipart_signed<s z"Generator._handle_multipart_signedcCsg}|D]t}|}||}|j|d|jd|}||j}|rv|d|jkrv| |j |ddq | |q |j |j |dS)NFrVr-) rMr,rr'rr<r/r r!rXrBrr)rr%Zblocksr]rr^textr0rrr_handle_message_delivery_statusGs    z)Generator._handle_message_delivery_statuscCs^|}||}|j}t|trD|j|dd|jd|}n | |}|j |dS)NrFrV) r,rrRrNrWr'rMrr<rrr)rr%rr^rTrrr_handle_message\s    zGenerator._handle_messagecCsvttj}dt|d}|dkr(|S|}d}|dt|dtj}| |sXqr|dt |}|d7}q0|S)Nz===============z==rz^--z(--)?$.r6) randomZ randrangesysmaxsize_fmt _compile_rereescape MULTILINEsearchrO)clsrctokenr_bZcounterZcrerrrrYus   zGenerator._make_boundarycCs t||Sr)rlcompilerprflagsrrrrkszGenerator._compile_re)NN)FN)N)__name__ __module__ __qualname__rrr'rr,rr2r$r9r7rUrDr`rbrdre classmethodrYrkrrrrrs,   1' :  csLeZdZddZddZddZddZfd d ZeZe d d Z Z S) rcCs|j|dddS)Nasciisurrogateescape)rrencoderrrrrszBytesGenerator.writecCstSr)rr+rrrr,szBytesGenerator._new_buffercCs |dSNrz)r|rrrrrszBytesGenerator._encodecCs8|D]\}}|j|j||q||jdSr)rGrrr Z fold_binaryrrHrrrr7szBytesGenerator._write_headerscs\|jdkrdSt|jrH|jjdksH|jr:td|j|_||jntt | |dS)NZ7bitrL) rRrr Zcte_typerrSrFr2superrrU)rr%r)rrrUs zBytesGenerator._handle_textcCst|d|Sr})rlrsr|rtrrrrkszBytesGenerator._compile_re) rvrwrxrr,rr7rUrDryrk __classcell__rrrrrs  zD[Non-text (%(type)s) part of message omitted, filename %(filename)s]c@s$eZdZdddddZddZdS)rNr cCs.tj|||||d|dkr$t|_n||_dSr()rr_FMTrj)rrr rZfmtr rrrrs  zDecodedGenerator.__init__c Cs|D]v}|}|dkr2t|jdd|dq|dkrs(    t3;