§
    Â&=d±  ã                   óö  — d dl Z d dlZ d dlZd dlZd dlZd dlZd dlZddlmZ dZ	 G d„ d¦  «        Z
 G d„ de
¦  «        Z G d	„ d
e
¦  «        Z G d„ de
¦  «        Z ed¦  «         ed¦  «         e
d¦  «         e
d¦  «         e¦   «          e
dd¬¦  «         ed¦  «         ed¦  «         edd¬¦  «         edd¬¦  «         edd¬¦  «         edd¬¦  «         edd¬¦  «        dœZg d¢Zd„ Zd„ Zd„ ZdS )é    Né   )Ú
BadMessageiÐû c                   ó&   — e Zd Zdd„Zd„ Zg fd„ZdS )ÚMuaTc                 ó`   — || _         |                     ¦   «         d         | _        || _        d S )Nr   )Ú_commandÚsplitÚ
executableÚneeds_terminal)ÚselfÚcommandr   s      ú2/usr/lib/python3/dist-packages/reportbug/mailer.pyÚ__init__zMua.__init__&   s+   € ØˆŒØ!Ÿ-š-™/œ/¨!Ô,ˆŒØ,ˆÔÐÐó    c                 ó~   — t           j                             |¦  «        ot          j        |t           j        ¦  «        S )N)ÚosÚpathÚisfileÚaccessÚR_OK)r   Úafiles     r   Ú_check_attachablezMua._check_attachable+   s)   € ÝŒw�~Š~˜eÑ$Ô$ÐB­¬°5½"¼'Ñ)BÔ)BÐBr   c                 óT   — | j         }d|vr|dz  }|t          j        |¦  «        z  }|S )Nú%sú %s)r   ÚshlexÚquote)r   ÚfilenameÚattachmentsÚcmds       r   Úget_send_commandzMua.get_send_command.   s4   € ØŒmˆØ�sˆ?ˆ?Ø�5‰LˆCØ•E”K Ñ)Ô)Ñ)ˆØˆ
r   N)T)Ú__name__Ú
__module__Ú__qualname__r   r   r!   © r   r   r   r   %   sS   € € € € € ð-ð -ð -ð -ð
Cð Cð Cð 68ð ð ð ð ð ð r   r   c                   ó   — e Zd Zg fd„ZdS )ÚMuttc                 ó°   ‡ — ‰ j         }d|vr|dz  }|t          j        |¦  «        z  }|r+ˆ fd„|D ¦   «         }|r|dd                     |¦  «        z   z  }|S )Nr   r   c                 óœ   •— g | ]H}‰                      |¦  «        ¯t          j        t          j                             |¦  «        ¦  «        ‘ŒIS r%   )r   r   r   r   r   Úabspath©Ú.0Úar   s     €r   ú
<listcomp>z)Mutt.get_send_command.<locals>.<listcomp>=   sZ   ø€ ð Fð Fð FØ¨4×+AÒ+AÀ!Ñ+DÔ+DðF•5”;�rœwŸš¨qÑ1Ô1Ñ2Ô2ð Fð Fð Fr   z -a ú )r   r   r   Újoin)r   r   r   r    Úatts   `    r   r!   zMutt.get_send_command7   s�   ø€ ØŒmˆØ�sˆ?ˆ?Ø�5‰LˆCØ•E”K Ñ)Ô)Ñ)ˆØð 	.ðFð Fð Fð FØ'ðFñ Fô FˆCàð .Ø�v §¢¨¡¤Ñ-Ñ-�Øˆ
r   N)r"   r#   r$   r!   r%   r   r   r'   r'   6   s+   € € € € € Ø57ð 
ð 
ð 
ð 
ð 
ð 
r   r'   c                   ó   — e Zd Zd„ Zg fd„ZdS )ÚGnusc                 ó"   — d| _         d| _        d S )NÚemacsclientT)r
   r   )r   s    r   r   zGnus.__init__E   s   € Ø'ˆŒØ"ˆÔÐÐr   c                 ót   — d}t          j        dd|¦  «        }t          j        ||z  ¦  «        }d|›d|›�}|S )Nz‹(progn
                      (load-file "/usr/share/reportbug/reportbug.el")
                      (tfheen-reportbug-insert-template "%s"))z["\\]z\\\g<0>zemacsclient --no-wait --eval z 2>/dev/null || emacs --eval )ÚreÚsubr   r   )r   r   r   Úelispr    s        r   r!   zGnus.get_send_commandI   sN   € ðBˆõ ”6˜* l°HÑ=Ô=ˆÝ”˜E HÑ,Ñ-Ô-ˆˆØRWÐRWÐRWÐY^ÐY^Ð_ˆØˆ
r   N)r"   r#   r$   r   r!   r%   r   r   r3   r3   D   s<   € € € € € ð#ð #ð #ð 68ð ð ð ð ð ð r   r3   c                   ó.   — e Zd Zd„ Zd„ Zg fd„Zg fd„ZdS )ÚMailtoc                 óF   — t           j                             |dd¬¦  «        S )Nú/Úreplace)ÚsafeÚerrors)ÚurllibÚparser   )r   Úinss     r   Ú_uqz
Mailto._uqT   s   € ÝŒ|×!Ò! #¨C¸	Ð!ÑBÔBÐBr   c                 ó¾   — d}||         }|rP|                       d                     |                     ¦   «         ¦  «        ¦  «        }d                     ||¦  «        }|S )NÚ z{}={}&)rD   r0   Ú
splitlinesÚformat)r   ÚhdrÚmsgÚparmstrÚhdÚcontents         r   Ú_get_headerparamzMailto._get_headerparamW   sU   € Øˆà�ŒXˆØð 	4Ø—h’h˜rŸwšw r§}¢}¡¤Ñ7Ô7Ñ8Ô8ˆGØ—o’o c¨7Ñ3Ô3ˆGàˆr   c                 ó  ‡ — d}|‰                       d                     |d                              ¦   «         ¦  «        ¦  «        z  }|dz  }dD ]}|‰                      ||¦  «        z  }Œ|                     ¦   «         r|                     d¦  «        S |r(ˆ fd„|D ¦   «         }|r|d                     |¦  «        z  }|                     d¬	¦  «                             d
¬¦  «        }|rˆ|dz   ‰                       |¦  «        z   }t          |¦  «        t          k    rS|d d…         }|st          d¦  «        ‚|dz  }|dz   ‰                       |¦  «        z   }t          |¦  «        t          k    °S|}|                     d¦  «        S )Nzmailto:rF   Útoú?)ÚsubjectÚccÚbccz?&c           	      óÄ   •— g | ]\}‰                      |¦  «        ¯d                      ‰                     t          j                             |¦  «        ¦  «        ¦  «        ‘Œ]S )z
attach={}&)r   rH   rD   r   r   r*   r+   s     €r   r.   z)Mailto._msg_to_mailto.<locals>.<listcomp>m   sj   ø€ ð Mð Mð MØ°$×2HÒ2HÈÑ2KÔ2KðM˜,×-Ò-¨d¯hªhµr´w·²ÀqÑ7IÔ7IÑ.JÔ.JÑKÔKð Mð Mð Mr   T)Údecoder>   )r@   zbody=i0øÿÿzunreasonable messagez;

[ MAILBODY EXCEEDED REASONABLE LENGTH, OUTPUT TRUNCATED ])rD   r0   rG   rN   Úis_multipartÚrstripÚget_payloadrV   ÚlenÚMAX_ARG_LENGTHr   )r   rJ   r   ÚmailtorI   Ú
attstrlistÚbodyÚ
try_mailtos   `       r   Ú_msg_to_mailtozMailto._msg_to_mailtoa   s³  ø€ ØˆØ�$—(’(˜2Ÿ7š7 3 t¤9×#7Ò#7Ñ#9Ô#9Ñ:Ô:Ñ;Ô;Ñ;ˆØ�#‰ˆà+ð 	6ð 	6ˆCØ�d×+Ò+¨C°Ñ5Ô5Ñ5ˆFˆFà×ÒÑÔð 	'Ø—=’= Ñ&Ô&Ð&àð 	.ðMð Mð Mð MØ#.ðMñ Mô MˆJàð .Ø˜"Ÿ'š' *Ñ-Ô-Ñ-�à�Š dˆÑ+Ô+×2Ò2¸)Ð2ÑDÔDˆØð 		 Ø 'Ñ)¨D¯HªH°T©N¬NÑ:ˆJÝ�j‘/”/¥NÒ2Ð2Ø˜F˜U˜F”|�Øð =å$Ð%;Ñ<Ô<Ð<ØÐWÑW�Ø# gÑ-°·²¸±´Ñ>�
õ �j‘/”/¥NÒ2Ð2ð  ˆFà�}Š}˜TÑ"Ô"Ð"r   c                 óþ   — t          |d¦  «        5 }t          j        |t          j        j        ¬¦  «        }d d d ¦  «         n# 1 swxY w Y   d                     | j        |                      ||¦  «        ¦  «        }|S )NÚr)Úpolicyz{} "{}")ÚopenÚemailÚmessage_from_filerc   Úcompat32rH   r
   r`   )r   r   r   ÚfpÚmessager    s         r   r!   zMailto.get_send_command€   s¼   € Ý�(˜CÑ Ô ð 	P BÝÔ-¨b½¼Ô9NÐOÑOÔOˆGð	Pð 	Pð 	Pñ 	Pô 	Pð 	Pð 	Pð 	Pð 	Pð 	Pð 	Pøøøð 	Pð 	Pð 	Pð 	Pð ×Ò˜tœ°×0CÒ0CÀGÈ[Ñ0YÔ0YÑZÔZˆØˆ
s   ‘&AÁAÁ
AN)r"   r#   r$   rD   rN   r`   r!   r%   r   r   r;   r;   S   sg   € € € € € ðCð Cð Cðð ð ð /1ð #ð #ð #ð #ð> 68ð ð ð ð ð ð r   r;   zmutt -Hz
neomutt -Hz/usr/bin/mh/comp -use -filezclaws-mail --compose-from-fileF)r   zalpine -urlz	pine -urlÚ	evolutionÚkmailzthunderbird -composezsylpheed --composeú	xdg-email)ÚmuttÚneomuttÚmhÚnmhÚgnusú
claws-mailÚalpineÚpinerj   rk   ÚthunderbirdÚsylpheedrl   )rr   rj   rk   ru   rv   c                 ój   — t          | t          ¦  «        s| t                               ¦   «         v rdS dS )zÖ
    Check if the mua is supported by reportbug

    Parameters
    ----------
    mua : Mua instance or str
        mail user agent

    Returns
    -------
    bool
        True if supported, otherwise False
    TF)Ú
isinstancer   ÚMUAÚkeys©Úmuas    r   Úmua_is_supportedr}   ¢   s2   € õ �#•sÑÔð ˜s¥c§h¢h¡j¤jÐ0Ð0ØˆtØˆ5r   c                 ó¦   — t          | t          ¦  «        s 	 t          |          } n# t          $ r Y dS w xY wt	          j        | j        ¦  «        rdS dS )z×
    Check if the mua is available on the system

    Parameters
    ----------
    mua : Mua instance or str
        mail user agent

    Returns
    -------
    bool
        True if available, otherwise False
    FT)rx   r   ry   ÚKeyErrorÚshutilÚwhichr
   r{   s    r   Ú
mua_existsr‚   µ   sf   € õ �c�3ÑÔð ð	Ý�c”(ˆCˆCøÝð 	ð 	ð 	Ø�5�5ð	øøøå„|�C”NÑ#Ô#ð ØˆtØˆ5s   —% ¥
3²3c                 ó¼   — dt           j        v sdt           j        v rdS t          | t          ¦  «        r| j        } | t
          v rdS | dk    rdt           j        vrdS dS )a2  
    Check if the mua can run in the current environment

    Some MUAs need a graphical environment and cannot run on a text
    console.

    Parameters
    ----------
    mua : Mua instance or str
        mail user agent

    Returns
    -------
    bool
        True if it can run, otherwise False
    ÚDISPLAYÚWAYLAND_DISPLAYTFrl   ÚMAILER)r   Úenvironrx   r   r
   ÚMUA_NEEDS_DISPLAYr{   s    r   Úmua_can_runr‰   Í   sn   € ð" 	•R”ZÐÐØ ¥B¤JÐ.Ð.ØˆtÝ�#•sÑÔð ØŒnˆØ
ÕÐÐØˆuØ
ˆkÒÐ˜h­b¬jÐ8Ð8ØˆuØˆ4r   )re   Úemail.policyr   r7   r   r€   rA   Ú
exceptionsr   r[   r   r'   r3   r;   ry   rˆ   r}   r‚   r‰   r%   r   r   ú<module>rŒ      s&  ðð0 €€€Ø Ð Ð Ð Ø 	€	€	€	Ø 	€	€	€	Ø €€€Ø €€€Ø €€€Ø "Ð "Ð "Ð "Ð "Ð "ð €ðð ð ð ð ñ ô ð ð"ð ð ð ð ˆ3ñ ô ð ðð ð ð ð ˆ3ñ ô ð ð2ð 2ð 2ð 2ð 2ˆSñ 2ô 2ð 2ðl ˆD�‰OŒOØˆt�LÑ!Ô!Ø
ˆ#Ð+Ñ
,Ô
,Øˆ3Ð,Ñ-Ô-ØˆD‰FŒFØ�#Ð6ÀuÐMÑMÔMØˆf�]Ñ#Ô#ØˆF�;ÑÔØ�˜°EÐ:Ñ:Ô:ØˆV�G¨EÐ2Ñ2Ô2Ø�6Ð0ÀÐGÑGÔGØ�Ð+¸EÐBÑBÔBØ�˜°EÐ:Ñ:Ô:ðð €ð ð ð Ð ðð ð ð&ð ð ð0ð ð ð ð r   