f$ ddlZddlZddlZddgZdZejeeddZejdj Z Gd d e Z d Z d Zd ZdZdZdZddgfdZddZgfdZdZdZdZedkr edSdS)Ngetcaps findmatchztThe {name} module is deprecated and will be removed in Python {remove}. See the mimetypes module for an alternative.) )removec"d|vr d|dfSdS)Nlinenor)r)entrys ./opt/alt/python311/lib64/python3.11/mailcap.pylineno_sort_keyrs!5%/!!tz[^\xa1-\U0010FFFF\w@+=:,./-]ceZdZdS)UnsafeMailcapInputN)__name__ __module__ __qualname__r rr rrs33rrc4 i}d}tD]} t|d}n#t$rY wxYw|5t||\}}dddn #1swxYwY|D]\}}||vr|||<|||z||<|S)Nrr)listmailcapfilesopenOSError_readmailcapfileitems)capsr mailcapfpmorecapskeyvalues r rrs D F#%% . . gs##BB    H   < </F;; Hf < < < < < < < < < < < < < < <"..** . .JC$;;!S  I-S  . Ks( 55AA !A c dtjvr2tjd}|tj}n,dtjvrtjd}nd}|dzdddg}|S)NMAILCAPSHOME.z /.mailcapz /etc/mailcapz/usr/etc/mailcapz/usr/local/etc/mailcap)osenvironsplitpathsep)pathstrmailcapshomes r rr9sqARZ*Z(==,, RZ  :f%DDD;&"$<> Orcd tjdtdt|d\}}|S)Nz2readmailcapfile is deprecated, use getcaps instead)warningswarnDeprecationWarningr)rr_s r readmailcapfiler3Ks9I MF$a)))r4((GD! Krc i} |}|sn+|ddks|dkr>|}|dddkr3|}|sd}|dd|z}|dddk3t|\}}|r|s| ||d<|dz }|d }t t |D]}||||< d |}||vr|||n|g||<C||fS) Nr r#z\  r /) readlinestrip parseliner(rangelenjoinlowerappend) rr rlinenextliner fieldstypesjs r rrSs| D!{{}}U 7c>>TZZ\\R// rssmv%%{{}}H ,X9x'Drssmv%%  oo V     %F8  aKF #s5zz"" ( (AQx~~''E!HHhhuoo##%% $;; I  V $ $ $ $DI9!: <rc g}dt|}}||kr4t|||\}}|||dz}||k4t|dkrdS|d|d|dd}}}d|i}|D]g}|d}|dkr|}d} n;|d|}||dzd} ||vrb| ||<h||fS)Nrr r.NNview=r6)r> parsefieldrAfindr;) rBrDinfieldr rIrestfkeyfvalues r r<r<|s% F c$iiqA a%%dAq))q e aC a%% 6{{QzQiF122JtCd^F " " JJsOO q55DFF!9??$$D1Q344[&&((F 6>> !F4LL ;rc |}||kr&||}|dkrn|dkr|dz}n|dz}||k&||||fS)N;\r.r )r;)rBrMrNstartcs r rKrKsq9 E a%% G 88  $YY!AA!A a%% a=   ! ##rrIz /dev/nullcH t|r"d|d}tj|tdSt |||}|D][}d|vr5t |d||}| |rt j|dkr;t |||||} | | |fcS\dS)Nz&Refusing to use mailcap with filename z . Use a safe temporary filename.rHtestr) _find_unsafer/r0rlookupsubstr&system) rMIMEtyper filenameplistmsgentrieserYcommands r rrsH\d\d\df c-...zT8S))G    Q;;6He44D|  $1,,#(E::  A:     :rcg}||vr |||z}|d}|ddz}||vr |||z}fd|D}t|t}|S)Nr9rz/*cg|]}|v| Sr r ).0rcr s r zlookup..s2221r)r )r(sortedr)rr^r rb MIMEtypess ` r r[r[sG4DN*s##I|d"H4DN* 2222g222W/222G Nrcd}dt|}}||kr,||}|dz}|dkr|dkr|||dz}|dz}||z}n||}|dz}|dkr||z}n|dkr||z}n|dkr7t|r"d|d }tj|tdS||z}n|d kr|} ||kr#||d kr|dz}||kr ||d k|| |} |dz}t | |} t| r%d | d | d}tj|tdS|| z}n|dz|z}||k,|S)Nr6rr %rUstz!Refusing to substitute MIME type z into a shell command.{}z!Refusing to substitute parameter z (z) into a shell command)r>rZr/r0r findparam) rOr^r_r`resrMrNrWrarVnameparams r r\r\s C c%jjqA a%% !H!A#a 88Dyy!AaC%Lac!'CCaAac!CxxAgcHnc))  YaYaYacCM#'9:::4Hnc!eeaC!A!eeaCU1W~aC!$..&&  ]b]b]bdhdhdhiCM#'9:::4Ek Ci!mE a%%F Jrc|dz}t|}|D].}|d||kr ||dcS/dS)NrJr6)r@r>)rsr`rNps r rqrqsd ::<<# D D A  RaR5;;==D QRR5LLL ! 2rc2ddl}t}|jddst|dSt dt |jdD]}|j||dz}t |dkrt ddS|d}|d}t||d|\}}|st dtvt d|tj |}tj |}|rt d|dS) Nrr r.z"usage: mailcap [MIMEtype file] ...rIzNo viewer found forz Executing:z Exit status:) sysrargvshowr=r>printrtyper&r]waitstatus_to_exitcode) rxrrMargsr^filerdrcstss r rYrYs(JJJ 99D 8ABB< T  1c#(mmQ ' '++x!A# t99q== 6 7 7 7 FF7AwtXvt<<  + ' . . . . , ( ( ()G$$C+C00C +nc***++rctdtD]}td|zt|st}tdtt|}|D]Y}t|||}|D]=}t|}|D]}td|z||t>ZdS)NzMailcap files: zMailcap entries:z %-15s)r{rrri)rfnckeysr|rbrckeysks r rzrzs   22%r "2"2"2"2 GGG !   GGG 4LLE d t*  A!99D + +i!mQqT**** GGGG  r__main__)N)r&r/re__all___DEPRECATION_MSG _deprecatedrrcompilesearchrZWarningrrrr3rr<rKrr[r\rqrYrzr rr rs+  [ !#X/@@@@rz9::A 44444444 4$'''R> $ $ $ #);b6    ,.''''R+++." zDFFFFFr