f ž _‚&c@sFdZgd¢ZddlZddlmZmZmZdZdZdZ dd „e d ƒDƒZ e dd…Z e dd…Z d e d ¡e d ¡D]Zeeƒe e<qvd e edƒ<dD]Zeeƒe e<q˜dd„Zdd„Zdd„Zdd„Zd+dd„Zdd„Zdd„Zd,dd „Ze dd…Zd!D]Zeeƒee<qþd"efd#d$„Zefd%d&„ZeZeZd'd(„Zd)d*„Z dS)-aFQuoted-printable content transfer encoding per RFCs 2045-2047. This module handles the content transfer encoding method defined in RFC 2045 to encode US ASCII-like 8-bit data called `quoted-printable'. It is used to safely encode text that is in a character set similar to the 7-bit US ASCII character set, but that includes some 8-bit characters that are normally not allowed in email bodies or headers. Quoted-printable is very space-inefficient for encoding binary files; use the email.base64mime module for that instead. This module provides an interface to encode and decode both headers and bodies with quoted-printable encoding. RFC 2045 defines a method for including character set information in an `encoded-word' in a header. This method is commonly used for 8-bit real names in To:/From:/Cc: etc. fields, as well as Subject: lines. This module does not do the line wrapping or end-of-line character conversion necessary for proper internationalized headers; it only does dumb encoding and decoding. To deal with the various line wrapping issues, use the email.header module. ) Ú body_decodeÚ body_encodeÚ body_lengthÚdecodeÚ decodestringÚ header_decodeÚ header_encodeÚ header_lengthÚquoteÚunquoteéN)Ú ascii_lettersÚdigitsÚ hexdigitsú Z ÚcCsg|] }d|‘qS)z=%02X©)Ú.0Úcrrú)/usr/lib64/python3.10/email/quoprimime.pyÚ 7óris-!*+/ZasciiÚ_ú s_ !"#$%&'()*+,-./0123456789:;<>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ cCót|ƒt|kS)z>Return True if the octet should be escaped with header quopri.)ÚchrÚ_QUOPRI_HEADER_MAP©ÚoctetrrrÚ header_checkJórcCr)z^rz header_length..©Zsum©Z bytearrayrrrrTs rcCr!)zÞReturn a body quoted-printable encoding length. :param bytearray: An array of bytes (a.k.a. octets). :return: The length in bytes of the byte array when it is encoded with quoted-printable for bodies. csr"r#)r$rr%rrrr&hrzbody_length..r'r(rrrrasrcCsft|tƒst|ƒ}|s&| | ¡¡ns>        O 0