MINI MINI MANI MO
3
\&^ @ s d ddgZ ddlZddlZddlZddlZddlmZ ddlmZ e j
Z
dZdZd Z
dZdZdZd
Ze
dZe
dZejdejejB ejB ZejdZejdZejjZdd ZdddZG dd d ZG dd dZ G dd de!Z"dS )Header
decode_headermake_header N)HeaderParseError)charset
N z zus-asciizutf-8ai
=\? # literal =?
(?P<charset>[^?]*?) # non-greedy up to the next ? is the charset
\? # literal ?
(?P<encoding>[qb]) # either a "q" or a "b", case insensitive
\? # literal ?
(?P<encoded>.*?) # non-greedy up to the next ?= is the encoded string
\?= # literal ?=
z[\041-\176]+:$z
\n[^ \t]+:c C s t | drdd | jD S tj| s.| d fgS g }x| j D ]}tj|}d}xp|r|jd}|rn|j }d}|r|j|d d f |rP|jdj }|jdj }|jd}|j|||f qPW q<W g } xVt
|D ]J\}
}|
dkr|d r||
d d r||
d d j r| j|
d qW xt| D ]}||= q*W g }
x|D ]\}}}|d krh|
j||f n|d krt
jj|}|
j||f n~|d
kr t|d }|r|dd d| 7 }yt
jj|}W n tjk
r td
Y nX |
j||f ntd| qDW g }d }}x~|
D ]v\}}t|trBt|d}|d krV|}|}nB||krx|j||f |}|}n |d kr|t| 7 }n||7 }q$W |j||f |S )N_chunksc S s( g | ] \}}t j|t|t|fqS )_charsetZ_encodestr).0stringr r r $/usr/lib64/python3.6/email/header.py
<listcomp>M s z!decode_header.<locals>.<listcomp>Tr F qb z===zBase64 decoding errorzUnexpected encoding: zraw-unicode-escape)hasattrr
ecresearch
splitlinessplitpoplstripappendlower enumerateisspacereversedemail
quoprimimeZ
header_decodelenZ
base64mimedecodebinasciiErrorr AssertionError
isinstancer bytesBSPACE)headerZwordslinepartsfirstZ unencodedr encodingZencodedZdroplistnwdZ
decoded_wordsZencoded_stringZwordZpaderrZ collapsedZ last_wordlast_charsetr r r r = sz
4
c C sL t |||d}x8| D ]0\}}|d k r8t|t r8t|}|j|| qW |S )N)
maxlinelenheader_namecontinuation_ws)r r- Charsetr! )Zdecoded_seqr9 r: r; hsr r r r r s c @ sJ e Zd ZdddZdd Zdd Zdd
dZdd
ZdddZdd Z dS )r Nr strictc C s| |d krt }nt|ts t|}|| _|| _g | _|d k rH| j||| |d krTt}|| _|d krjd| _ nt
|d | _ d S )Nr r )USASCIIr- r<