a d;)@s.ddlZddlZddlZddlZddlmZGdddZeZd%ddZe ded d Z d D]Z e e e qfd d Z d D]Ze dee qddZe deddZddZddZddZd&ddZeeed'd d!Zeejjed(d#d$ZeeefD]ZeeeqdS))N) quoprimimec@s<eZdZddZddZddZddZd d Zd d Zd S)ContentManagercCsi|_i|_dSN) get_handlers set_handlers)selfr,/usr/lib64/python3.9/email/contentmanager.py__init__ szContentManager.__init__cCs||j|<dSr)r)rkeyhandlerrrr add_get_handler szContentManager.add_get_handlercOs|}||jvr.|j||g|Ri|S|}||jvr\|j||g|Ri|Sd|jvr|jd|g|Ri|St|dS)N)get_content_typerget_content_maintypeKeyError)rmsgargskw content_typemaintyperrr get_contents   zContentManager.get_contentcCs||j|<dSr)r)rtypekeyr rrr add_set_handlerszContentManager.add_set_handlercOsD|dkrtd|||}||||g|Ri|dS)N multipartz"set_content not valid on multipart)r TypeError_find_set_handler clear_content)rrobjrrr rrr set_contents   zContentManager.set_contentc Csd}t|jD]}||jvr*|j|S|j}t|dd}|rNd||fn|}|dur^|}||jvrv|j|S||jvr|j|S|j}||jvr|j|Sqd|jvr|jdSt|dS)N __module__r.)type__mro__r __qualname__getattrjoin__name__r) rrrfull_path_for_errortypqnamemodname full_pathnamerrr r's&       z ContentManager._find_set_handlerN) r'r r$r r rrrrrrrr rs   rreplacecCs&|jdd}|dd}|j||dS)NTdecodecharsetASCII)errors) get_payload get_paramr0)rr3contentr1rrr get_text_content@s  r7textcCs |jddS)NTr/r4rrrr get_non_text_contentGsr;zaudio image video applicationcCs |dSNrr9r:rrr get_message_contentMsr=zrfc822 external-bodyzmessage/cCst|dSr<)bytesr4r:rrr %get_and_fixup_unknown_message_contentSsr?messagec sd||f|d<|rt|dds<|jfdd|D}z(|D]}|jrV|jd|||j<qBWnBtjjy}z&td |j |jd|WYd}~n d}~00dS) N/z Content-Typerr-csg|]}j|gqSr)header_factoryheader_source_parse).0headermprr dsz _prepare_set..zInvalid header: {})policy) r&hasattrrIdefectsr-emailr3 HeaderDefect ValueErrorformatfold)rrsubtypeheadersrEexcrrFr _prepare_set_s$   rTcCsx|dur|durd}|dur$||d<|dur>|jd|ddd|durN||d<|durt|D]\}}|||q^dS)N attachmentzContent-DispositionfilenameT)rEr.z Content-ID) set_paramitems)r dispositionrVcidparamsr valuerrr _finalize_setpsr]cCsVg}|dd}tdt||D]*}||||}|t|dq d|S)Nrasciir)rangelenappendbinascii b2a_base64r0r&)datamax_line_length encoded_linesunencoded_bytes_per_lineithislinerrr _encode_base64s  rlc s||}|jdfdd}dd}|durtdd|Ddd |jkrzd ||dfWStyxYn0|jd krd ||dd fS||dd }t |d|j}t |} t |t | krd}nd}t |d kr||fS|d kr||d} nj|d kr*||dd } nN|dkrNt ||d|j} n*|dkrjt |||j} ntd||| fS)Nr`cs|Srr&lineslineseprr embedded_bodyz#_encode_text..embedded_bodycSsd|dS)N rmrnrrr normal_bodyrsz!_encode_text..normal_bodycss|]}t|VqdSr)rb)rDxrrr rsz_encode_text..r)default7bit8bitsurrogateescape zlatin-1base64quoted-printablez$Unknown content transfer encoding {})encode splitlinesrqmaxrgr0UnicodeDecodeErrorcte_typer body_encoderdrerbrlrNrO) stringr1cterIrorrrusniffsniff_qp sniff_base64rfrrpr _encode_textsD           rplainutf-8c Csdt|d|| t||||j\}} || |jdtjj||dd||d<t |||||dS)Nr8r1T)r.Content-Transfer-Encoding) rTrrI set_payloadrWrLr1ALIASESgetr]) rrrQr1rrYrVrZr[rRpayloadrrr set_text_contents rrfc822c Cs|dkrtd|dkr@|dvr.td||dur:dn|}n0|dkrd|dvr^td |d }n |durpd }t|d ||||g||d <t|||||dS) Npartialz4message/partial is not supported for Message objectsr)Nryrzbinaryz*message/rfc822 parts do not support cte={}rzz external-body)Nryz1message/external-body parts do not support cte={}ryr@r)rNrOrTrr]) rr@rQrrYrVrZr[rRrrr set_message_contents( rr}c Cst|||| |dkr(t||jjd}nN|dkrNtj|dddd}|d}n(|dkrb|d}n|d vrv|dd }||||d <t|||||dS) Nr})rgr~FT)istextrE quotetabsr`ry)rzrr{r) rTrlrIrgrdb2a_qpr0rr]) rrfrrQrrYrVrZr[rRrrr set_bytes_contents    r)r.)rrNNNNNN)rNNNNNN)r}NNNNN)rd email.charsetrL email.message email.errorsrrraw_data_managerr7r r;splitrr=rQr?rTr]rlrrrstrrr@Messagerr> bytearray memoryviewr)rrrr sL 6     '