
    A*rg                     Z    d dl Zd dlmZmZ d dl mZmZmZ d dlZd dlm	Z	  G d de
      Zy)    N)listdirgetcwd)isdirjoinabspath)IPTCInfoc                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d  Z"d! Z#d" Z$d# Z%d$ Z&	 d% Z'd& Z(d' Z)y())DpTranslatorc                     || _         || _        || _        d| _        | j	                         dz   | j                   z   dz   | _        y )N   /
/style.css)siterootDir
isRealTimeid	relPrefixcssfile)selfr   r   r   s       %/home/wayne/dullPencil/dullpencil2.py__init__zDpTranslator.__init__   s?    DIDL DODG>>#c)DII5DDL    c                 ,   t        | d      r| j                  }n| j                  }|t        | j                        d  j	                  d      }t        |      dk  rd}|S t        |      dk(  rd}|S d}t        t        |      dz
        D ]  }|dz  }	 |S )Npathr   r   .   ../..)hasattrr   r   lensplitrange)r   r   aafixjs        r   r   zDpTranslator.relPrefix   s     tFDIIT$	c$,, 	!	'	'	,B
2w!|3S J 
RATs
 J cSWQY !uJr   c                     | j                   si|d   dk(  r| j                         |z   }n|}|t        |      dz
     dk(  r|d t        |      dz
   }|dz   }t        j                  j                  |      r|}|S )Nr   r   r   /index.html)r   r   r    osr   isfile)r   fnf2s      r   	maybeHtmlzDpTranslator.maybeHtml/   st    ??	A#DNN,R/rB
 
CGAI#	BzB	Nrb		BrIr   c                 J    d| j                   z   dz   | j                  z   dz   }|S )Nz@<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>z(</title>
  <link rel="stylesheet" href="z">
</head>
<body>
)r   r   )r   r   ss      r   preamblezDpTranslator.preamble@   sC     II	!(	(
 +/,,7
:  Hr   c                 
    d}|S )Nz
</body>
</html>
 )r   r.   s     r   	postamblezDpTranslator.postambleP   s    AHr   c                 `   || _         t        j                  j                  |      | _        | j	                         dz   | j
                  z   dz   | _        d| _        g | _        d| _	        d| _
        d| _        d| _        d| _        d| _        	 t        | j                   d      j!                         }	 | j                  j%                  | j'                  | j                               d}ddg}d}d}d}d}d}	d| _        d| _        d}
d}|t-        |      k  	rm||   }|dk(  rd}d}||z   t-        |      k  r-|||z      d	k(  r"|d
z  }||z   t-        |      k  r|||z      d	k(  r"||z  }|t-        |      k\  rp||   }|dk(  r|dz   t-        |      k  r|||dz    dk(  rt| j/                  ||      \  }}|
|z  }
||z  }|t-        |      k  r"||   dv r|d
z  }|t-        |      k  r||   dv r|t-        |      k  r||   dk(  r|
||   z  }
|d
z  }
|dk(  rd| _        |d
z  }| j(                  rt-        | j                        d
kD  r*| j1                  |
      }
t-        | j                        d
kD  r*| j                  dk7  r| j1                  |
      }
t-        | j                        dk(  r!|
dz  }
| xj                  dz  c_	        d| _        |dz  }|dkD  r|d	z  }|d
z  }|dkD  r|dk(  ru|dz   t-        |      k  r|||dz    dk(  r| j3                  ||
      }
|
dz  }
|t-        |      k  r$||   dk7  r|d
z  }|t-        |      k  r	||   dk7  rd| _        |d
z  }X|dk(  r?|dz   t-        |      k  r3|||dz    dk(  r'| j3                  ||
      }
d}|t-        |      k  r,||   dk7  r$|||   z  }|d
z  }|t-        |      k  r	||   dk7  r$d}d}|t-        |      k  r$||   dk(  r|d
z  }|t-        |      k  r	||   dk(  r|d | }||d  j5                         j7                  |      }t9        |      }|d|z   dz   |d   z   dz   |z   dz   z  }|dk(  r|dz  }t-        |      d
kD  r&|d
   j5                         }t-        |      dkD  r||z  }|
|z  }
d| _        |d
z  }|dk(  r |dz   t-        |      k  rb|||dz    dk(  rW| j3                  ||
      }
|
dz  }
|t-        |      k  r$||   dk7  r|d
z  }|t-        |      k  r	||   dk7  rd| _        |d
z  }|dz   t-        |      k  r||||dz    dk(  rq| j3                  ||
      }
| j;                  ||      \  }}|
|z  }
||z  }|t-        |      k  r$||   dk7  r|d
z  }|t-        |      k  r	||   dk7  rd| _        |d
z  }d}|d k(  r| j=                  ||      \  }}}||z  }|r|t-        |      k\  s||   dk(  rr| j3                  ||
      }
| j                  j%                  |
|z          d}
|t-        |      k  r$||   dk7  r|d
z  }|t-        |      k  r	||   dk7  rd| _        |d
z  }O||   }| j(                  r|dz  }nY|d!z  }nS|d"v r8	 |d#k(  r|d$z  }n||z  }|d
z   t-        |      k\  s
||d
z      d"vrn"|d
z  }||   }7| j(                  r|dz  }n|d!z  }| j3                  ||
      }
d| _        t-        |
      dkD  r| j                  j%                  |
       d}
t-        |      dkD  r| j                  j%                  |       d
}|d
k(  r3|d%k7  r|dkD  r|d
kD  r|
d |  }
|d
kD  r|dk(  r|r|
d&z  }
n|
d'z  }
| }|dz  }np|d(k(  r|r|
d)z  }
n|
d*z  }
| }|d(z  }nU|dk(  r&|r|
d&z  }
n|
d'z  }
| }|r|
d)z  }
n|
d*z  }
| }|dz  }n*|r|
d&z  }
d}|dz  }n|r|
d)z  }
d}|d(z  }n|
d'z  }
d}|dz  }|d
kD  r|dkD  r|
d%z  }
d}|dk7  r2|	dkD  r-|	dk(  r&|dk7  r!t-        |
      d(kD  r|
d+d d,k(  s|
d |	  }
|
d-z  }
d}	|dk(  r|
|z  }
d}|t-        |
      k  rd}|
|   }|d.k(  r)|
d
d  j5                         }t-        |      dkD  r||z  }n|d/v r't-        |
      d
kD  r||
d
d  j5                         z  }nv|d0k(  rt-        |
      d
kD  rb|
d
d  j5                         }|j?                  d.      }|dk  r|j?                  d      }|dkD  r8|d
z   t-        |      k  r'||   dk(  r|d
z  }|d
z  }|d*|d | z   d)z   ||d  z   z  }n|dk  rd}nd
}|||d  j5                         z  }n|d1v r|
dd d2k7  re|d#k(  rd| _         nd| _         | j                  sd| _        |d3z  }n| j@                  r|d4z  }n|d5z  }|d6z  }| j@                  r|d7z  }n|d8z  }|
d
d  }
|
j7                  d2      }tC        dt-        |      d
z
        D ]%  }| j@                  r|||   d9z   z  }|||   d:z   z  }' ||d;   z  }t-        |      dkD  r|}
d}n@|d k(  r"| j=                  ||      \  }}}|
|z  }
||z  }	N|
|z  }
|d%k(  r|d
z  }|dk(  r|	d
z  }	|d
z  }|t-        |      k  r	mt-        |
      dkD  r| j                  j%                  |
       d}
|r| j                  j%                  d)       d}|r| j                  j%                  d&       d}t-        | j                        dkD  r*| j1                  |
      }
t-        | j                        dkD  r*|dkD  r| j                  j%                  d<       | j                  j%                  | jE                                djG                  | j                        S #  t#        d| j                          Y yxY w)=Nr   r    r   FrFailed to read:T r   <   z<!--z 	
p<p>r   -----<hr>
===<h></h>
z<br>z<br>
   <pre>[cz:*#|!%!|'</i><i>   </b><b><!&mdash;:*#%|!||
<tr>
</th>
</td>
</tr>
<tr>
<th><td>
</th>
<th>
</td>
<td>/
<p>Error: unterminated command somewhere!</p>
)$fileNamer(   r   dirnamer   r   r   surnamereenvidentidentstristable
tablestuffpbufopenreadprintappendr/   	emptyLineparEmptyr    
getCommentcloseEnv	adjustEnvstripr!   strgetPre
getCommandfindisheaderr"   r2   r   )r   rd   r.   statecmdcmdNestbolditaliciCntdCntbufirI   newEnvsCntbuf2cntb2s2levelc2a2c3embeddedr%   s3kas                               r   wwToHtmlzDpTranslator.wwToHtml\   s   DM+DI>>#c)DII5DDL DLDGDHDJDMDLDODI
t}}c
"
'
'
)a, 	GGNNDMM499.0
 Eb'CGDFDD DNDM
C	A
c!f*
A$a
 
! fs1vo!AdF)s"2DAIDafs1vo!AdF)s"2	T	A;
aD 8qSCF]q1Q3x61q+HD4KCHAc!f*1Q!c!f*13q6zaddlQqTkc1fa 9$.
q&!
 >>DHH!)=3DHH!XX_DMM3$8c]a5LCHHOH DM AvQh
C-&
!)$ Qh 8qSCF]q1Q3x61 ..&#/C8OCc!f*1qAvq!c!f*1"DNFA#XqSCF]q1Q3x4/
 ..&#/C Bc!f*1AaDjb1fa c!f*1 BE#b'/bi3&6qje #b'/bi3&6FUBEF!!#))"-BUB$)c/BqE)E1B6>>Bz2>22w{a5;;=bR1b2IC"DNFA#XqSCF]q1Q3x61
 ..&#/C8OCc!f*1qAvq!c!f*1!DNFAsc!f}1QqSW!4 ..&#/C {{1Q'HD4KCHAc!f*1qAvq!c!f*1"DNFA
 8"ooa2
$s8
s(!Q#a&[AaDDL ..&#/C GGNNC$J(Cc!f*1qAvq!c!f*1"DNFAd! ^^Vs]V# (]Cx3A+&sc!f}AacFh$6FA!A  ^^Vs]V# nnfc+  s8a<.t9q=$''..$0
 
!8qAXfu+C(3&=3Ulc#	19Ulcx	193&=3Ulc#Ulcx	 -# &!)$-#$!)$ ,#&!)$M (T ax$8qQY18s8a<C1I$5$KcYc $9
(#!S\BQBSyqr7==?bR1bBhbtSArSW]]_4rsSAW]]_GGCLq5bggcl!q5QqS3r7]Uc\161q&!b!fV+BqrF22"UA12&"tQqT!9ddm&+dm||!%$,
""]]B)OBi'"==","Flb!"g))D/aQAq) 1!=="!}(<"<"AaD=00b1 AbEkb2w{"C%#X"ooa2
$s8
+#
s(!

(##Xtqyt#Xtqyt 1faU
 c!f*\
 3x!|
ggnncc
ggnnfd
ggnnff dhh-!
4==##7S#dhh-!
{
ggnnIK 	GGNNDNN$&77477e/s   $n n-c                    t        | j                        t        |      kD  r3| j                  |      }t        | j                        t        |      kD  r3t        | j                        dkD  r| j                  |d t        | j                         k(  rt        | j                        t        |      k(  r| j                  dk(  r| j                  s| j                  |      }nu| j                  d   dv r| j                  |      }nR| j                  d   dk(  r|dz  }n:| j                  d   dv r|dz  }n#| j                  d   d	k(  r| j                  |      }n+| j                  |      }t        | j                        dkD  rd
| _        t        | j                        t        |      k  r|t        | j                           }|dk(  r|dz  }nZ|dk(  r|dz  }nO|dk(  r|dz  }nD|dk(  r|dz  }n9|dk(  r|dz  }n.|dv r|d| j
                  z   dz   z  }d}n|d	k(  r|dz  }n|dz  }d}| xj                  |z  c_        t        | j                        t        |      k  r|S )Nr   r;   rb   rI   rU   
</dd>
<dd>rV   
</li>
<li>rW   Fr<   z	<cripple>z	<dl><dd>
*z	<ul><li>
#z	<ol><li>
rX   <table rE   rK   z<div class="definition">
z<div class="indent">
r7   )r    rh   ru   rs   rr   rl   )r   r   r   r   s       r   rv   zDpTranslator.adjustEnv  s   
dhh-#f+
%T]]C-As#dhh-#f+
%
dhh-!
	VNS]+	+txx=CK'XX_T]]--&Cxx|s"--&Cxx|s"= Cxx|t#= Cxx|s"--&CMM3 c# dhh-!
( DN dhh-#f+
%#dhh- b	sC5LC9c[(c9c\)c9c\)c9c\)c:y(..9c99c 	''
hh"nh dhh-#f+
%$ Jr   c                 x    d}||d  j                  d      }|dkD  r|dz   }nt        |      |z
  }||||z    }||fS )Nr4   z-->r   rO   r{   r    r   r.   r   r   r%   r   s         r   rt   zDpTranslator.getComment>  sP    
C	!"

5A1uAaCcA
#
Aae*C9r   c                 x    d}||d  j                  d      }|dkD  r|dz   }nt        |      |z
  }||||z    }||fS )Nr4   </pre>r      r   r   s         r   ry   zDpTranslator.getPreH  sP    
C	!"

8A1uAaCcA
#
Aae*C:r   c                    d}d}d}ddg}d}||z   t        |      k  r}|||z      }|dv r||z  }|dz  }ne|dk(  r|dz  }|dz  }nT|dk(  r|d	z  }|dz  }nC|d
k(  rG||z   t        |      k  r,|||z      d
k(  r ||z  }|dz  }||z   t        |      k  r|||z      d
k(  r(n|dk(  rD||z   t        |      k  r|||z      dk(  r||z  }|dz  }||z   t        |      k  r|||z      dk(  r'nd}d||<   ||z   t        |      k  r|||z      }|dk(  r|dz  }	 d||<   ||xx   |z  cc<   nT|dk(  rB||xx   |z  cc<   | j                  ||         \  }	}|dz  }|dk(  r||	z  }n2||xx   |	z  cc<   n||xx   |z  cc<   |dz  }||z   t        |      k  r|dz  }|||fS # t        $ r |j                  d       Y w xY w)Nr4   r   Tr   []r8   &lt;&&amp;r=   rL   rH   ])r    
IndexErrorrq   doCmd2)
r   r.   r   r   r   r   r~   r   rI   r   s
             r   rz   zDpTranslator.getCommandR  sD   
C
CHb'CGus1v~
AcE(a	
dqq8vq8wq8ec!fn1S5S
(#
(# ec!fn1S5S 8ec!fn1S5S
(#
(# ec!fn1S5S
 Gec!fn#h!#XqLGc'l LALCxLAL++s7|5KBxqLG!|Ric'lb l LAL (#1 ec!fn4 	q h-  jj"s   F! !F>=F>c                    || _         t        j                  j                  |      | _        | j	                         dz   | j
                  z   dz   | _        d| _        g | _        d| _	        d| _
        d| _        d| _        	 t        | j                   d      j                         }	 | j                  j!                  | j#                  | j                               d}d}ddg}d}d}d}d}	d}
d}|t%        |      k  r||   }|dk(  r7|dk7  r|	dkD  r|	d	kD  r|d |	  }|	d	kD  r|	d
k(  r|r|dz  }n|dz  }| }|	d
z  }	np|	dk(  r|r|dz  }n|dz  }| }|	dz  }	nU|	dk(  r&|r|dz  }n|dz  }| }|r|dz  }n|dz  }| }|	dz  }	n*|r|dz  }d}|	d
z  }	n|r|dz  }d}|	dz  }	n|dz  }d}|	d
z  }	|	d	kD  r|	dkD  r|dz  }d}	|dk7  r2|
dkD  r-|
d
k(  r&|dk7  r!t%        |      dkD  r|dd
 dk(  s|d |
  }|dz  }d}
|dk(  rt%        |      dkD  r||z  }d	}n|dk(  rd	}d||<   d}n||z  }|dk(  r|	d	z  }	|dk(  r|
d	z  }
n|d	k(  r|dk(  r| j                  j!                  | j'                  |             | j                  r6| j(                  rd}nd}| j                  j!                  |dz          d| _        | j                  dkD  r*| j                  j!                  | j+                  d             d}d}n|dv r0| j                  j!                  | j'                  |             |}d}n|dk(  rF|||dz    dk(  r-| j                  j!                  | j'                  |             |}n||z  }|
d	z  }
d}nu|dk(  rA|||d
z    d k(  r-| j                  j!                  | j'                  |             |}n||z  }d}n/|dk(  rd	}d||<   d}n||z  }|dk(  r|	d	z  }	d}n|dk(  r|dk(  r|d	z  }	 d||<   ||xx   |z  cc<   n|d!k(  rA||xx   |z  cc<   | j/                  ||         }|d	z  }|dk(  r||z  }d}n||xx   |z  cc<   n|dk(  r||   d"k(  r||xx   |z  cc<   d}n||xx   |z  cc<   nx|dk(  rs|d!k(  r;||   d#d  d$k(  r0d%||   dd# z   d&z   }|d	z  }|dk(  r||z  }d}nC||xx   |z  cc<   d}n3|d'k(  r||xx   d(z  cc<   n |d)k(  r||xx   d*z  cc<   n||xx   |z  cc<   |d	z  }|t%        |      k  rt%        |      dkD  r*| j                  j!                  | j'                  |             |r| j                  j!                  d       d}|r| j                  j!                  d       d}| j                  r6| j(                  rd}nd}| j                  j!                  |dz          d| _        | j                  dkD  r*| j                  j!                  | j+                  d             |dkD  r| j                  j!                  d+       | j                  j!                  | j1                                dj3                  | j                        S #  t        d| j                          Y yxY w# t,        $ r |j!                  d       Y w xY w),Nr   r   r4   r   Fr5   r6   rL   r   r   rM   rN   rO   rP   rQ   rF   Tr=   rC   rR   rS   rT   r:   rH   r[   r\   </tr>
</table>
z:*#|!r9   r>   r@   rA   r   z[-z--rG   r   r8   r   r   r   rc   )rd   r(   r   re   r   r   r   rf   rg   ri   rj   rk   rl   rn   ro   rp   rq   r/   r    doParagraphr|   unindentr   doCmdr2   r   )r   rd   r.   r}   r   r~   r   r   r   r   r   r   rI   r   s                 r   toHtmlzDpTranslator.toHtml  s   DM+DI>>#c)DII5DDL DLDGDJDMDLDO
t}}c
"
'
'
)a  	GGNNDMM499.0 E
Cb'CGDFDD	A
c!f*
A$a	!8qAXfu+C(3&=3Ulc#	19Ulcx	193&=3Ulc#Ulcx	 -# &!)$-#$!)$ ,#&!)$M (T ax$8qQY18s8a<C1I$5$KcYc $9X\1HCE#X'#g,%
(##Xtqyt#XtqytA:9
''..$**C1
3 \\}}9b "GGNNB!446 DLZZ!^TWW^^T]]A-?A#%'\
''..$**C1
3#%#X q1XGGNND,,c35C1HC
!)$%#Xq1XGGNND,,c35C1HC%#X'#g,%
(##Xtqyt%A:8
Q,'CL g,!
,#X
g,!
,zz3w<)"
Q,'\2ICELBL#X#g,$.
g,!
,%
g,!
,A:8GRS)T1Wa++h6"
Q,'\2ICELBLE#Xs7|v-|#Xs7|w.|'lal 1faS c!f*V 3x!|
ggnnd&&-/ 
ggnnfd
ggnnff ||	YB
ggnnb..0dlzzA~tww~~t}}a'9;{
ggnnIK 	GGNNDNN$&77477M/F  JJs   ?$Y +Y. Y+.ZZc                    d}d| _         d}|j                  d      j                         }|j                  d      }t        |      dkD  rk|t        |d         dz   d  j                         }|d   j                         j	                         }|dv rd}|d	k(  r| j                  |      }n|d
k(  r| j                         }n|dk(  r| j                  |      }n|dk(  r| j                  |      }n|dk(  r| j                  |      }n|dk(  r| j                  |      }n|dk(  r| j                  |      }n|dk(  r| j                  |      }nz|dk(  r| j                  |      }nc|dk(  r| j                  |      }nL|dk(  r| j                  |      }n5|dk(  s|dk(  r| j!                  |      }nd| _         n| j#                  |      }| j                   s|d|z   dz   z  }||fS )NTFr4   r   rU   r   r   )headnavpathchidrentableimggallerydirr   r   personcouplechildrenr   r   r   r   mp3
mp3shufflehttphttps<em><s>	</s></em>)	doCmdDonerw   r!   r    lowerhead2navpath2r   r   r   table2img2gallery2dir2mp32mp3shuffle2http2	localFile)r   r~   r   r   cmd2r   cmdArgsrI   s           r   r   zDpTranslator.doCmd2  s   HDN	B99T?  "D

3A
1vzS1Yq[\"((*g
A$**,


a 
H	H;4::w#8b	>4==?b=4;;#9b=4;;#9b
?4=='#;b<4;;#9b:499g#7b	>4=='#;b:499g#7b:499g#7b4#3#3W#>b;!w,TZZ-?"DN >>4!b>>IOk))b >r   c                    d}|j                  d      j                         }|j                  d      }t        |      dkD  r\|t        |d         dz   d  j                         }|d   j                         j                         }|dk(  r| j	                  |      }n|dk(  r| j                         }n|dk(  r| j                  |      }n|d	k(  r| j                  |      }n|d
k(  r| j                  |      }n|dk(  r| j                  |      }n|dk(  r| j                  |      }n|dk(  r| j                  |      }nr|dk(  r| j                  |      }n[|dk(  r| j                  |      }nD|dk(  r| j                  |      }n-|dk(  s|dk(  r#| j                  |      }n| j!                  |      }t        |      dk(  rd|z   dz   }|S )Nr4   r   rU   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )rw   r!   r    r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r~   r   r   r   r   rI   s          r   r   zDpTranslator.doCmd  s   	B99T?  "D

3A
1vzS1Yq[\"((*g
A$**,


a ;499g#7b	>4<<>b=4;;#9b=4;;#9b
?4=='#;b<4::w#8b:488W#6b	>4<<#:b:488W#6b:488W#6b4??G#=b;!w,TYY-> >>4!b
2w!|s?[(bIr   c                 &   d}t        |      }|dkD  r|d   }| j                  r'|dvr#| j                  r|dz  }n|dz  }|dz  }d| _        | j                  dkD  r|dvr|| j	                  d      z  }|d	v rrd
}t        |      |kD  r"||   d	v r|d
z  }t        |      |kD  r||   d	v r| j                  |kD  r|| j	                  |      z  }| j                  |k(  rB||d
z
     }| j
                  d   |k7  r|| j	                  |d
z
        z  }n|dk(  r|dz  }n|dz  }| j                  |k  rx|dz  }| j                  |k  rd|| j                     }| xj
                  |z  c_        |dk(  r|dz  }n|dk(  r|dz  }n|dz  }| xj                  d
z  c_        | j                  |k  rd||d  j                         }t        |      dkD  r|d   dv r|| j                  |      z  }|S ||z  }|S |dv r|dd dk7  ru|dk(  rd| _        nd| _        | j                  sd| _        |d| j                  z   dz   z  }n| j                  r|dz  }n|dz  }|dz  }| j                  r|dz  }n|dz  }|d
d  }|j                  d      }t        dt        |      d
z
        D ]%  }	| j                  r|||	   dz   z  }|||	   dz   z  }' ||d   z  }|S |d d  d!k(  rL|d"z  }|d d  j                  d#      j                         }t        |      dkD  r|| j                  |      z  }|S |d d d$k(  rd}
t        |      |
kD  r$||
   d%k(  r|
d
z  }
t        |      |
kD  r	||
   d%k(  r|d |
 }||
d  j                         j                  |      }t        |
      }|d&|z   d'z   |d   z   d(z   |z   d)z   z  }|
dk(  r|d"z  }t        |      d
kD  rP|d
   j                         }t        |      dkD  r/|| j                  |      z  }|S |d*|j                         z   d+z   z  }|S |d,z  }|S )-Nr4   r   z!|r[   r\   r   Fz:*#!|z:*#r   rb   rU   r   r   r:   z<dl><dd>r   z<ul><li>z<ol><li>rX   r   rY   rJ   Tr   z>
<tr>
r]   r^   r_   r`   ra   r9   r>   r?   z
 rA   r@   rB   rC   rD   rE   r<   z
</p>
zWe have a problem)r    rk   r|   ri   r   rj   rw   r   rl   r!   r"   rx   )r   br   nr   r   r   r   r   r   r   r   r   s                r   r   zDpTranslator.doParagraph  s   	BAA1uQ4b	"D.=="	/"Iob
!!	aBg-dmmQ6H0H	u!fslqv
(# !fslqv::R4==##77R::Qx"]]2"$$--Q((BSyM!bM!b::
*"

S 4::BMMRMSyJbsJbJbJJ!OJ 

S  stW]]_r7Q;2a5D="0@0@"0F*F"d Ic Bhbb Ia :Qq6T>3Y %DL)doo-;;B}}bIob	/"/!B]]B&LBfe!GGDMq#a&(# 	+A]]B!A$"66Bad]**	+ 	ae8 I/ Ra5F?
habEKK$$&q6A:
  !%
%"& I% Ra5D=!fun5S
1*% !fun5SvYuvY__$$R(Z
dRi#o1%-2U::A:
."r7Q;!u{{}"Wq[$""B((B
 I 	eaggi*,, I 	bIr   c                    t        | j                        dkD  rod}t        | j                        }| j                  d   }|dk(  r<|dz  }| j                  dd  j                         }t        |      dkD  r||z  }|dz  }n|dv rD|dz  }t        | j                        dkD  r || j                  dd  j                         z  }|d	z  }n|d
v r| j                  dd dk7  rt|dk(  rd| _        nd| _        | j                  sd| _        |dz  }n| j                  r|dz  }n|dz  }|dz  }| j                  r|dz  }n|dz  }| j                  dd  | _        | j                  j                  d      }t        dt        |      dz
        D ]%  }| j                  r|||   dz   z  }|||   dz   z  }' ||d   z  }n|dk\  r| j                  d d dk(  r|dz  }n| j                  d d dk(  rd}t        | j                        |kD  rB| j                  |   dk(  r0|dz  }t        | j                        |kD  r| j                  |   dk(  r0| j                  d | }| j                  |d  j                         j                  |      }t        |      }	|d|	z   dz   |d   z   d z   |	z   d!z   z  }|dk(  r|dz  }t        |      dkD  r|d   j                         }
t        |
      dkD  r||
z  }n| j                  d d" d#k(  r|| j                  z  }nat        | j                        dk(  s| j                  d   d$k7  r|d%z  }| xj                  d$z  c_        || j                  j                         z  }| j                  j                  |       d| _        y y )&Nr   r4   rU   z<dd>r   z</dd>
rV   z<li>z</li>
rX   r   rY   rJ   TFrZ   r[   r\   r]   r^   r_   r`   ra   rb   r9   r>   r?   rA   r@   rB   rC   rD   rE   rF   rG   r;   r<   )r    rm   rw   r|   rk   r!   r"   rx   rh   rg   rq   )r   r   r   r   r   r   r   r   r   r   r   s              r   flushBufzDpTranslator.flushBufD  si   
499~b
dii.a99Q<b	s
fYYqr]  "
 r7Q;b
i:
ftyy>ArTYYqr]%8%8%::r
i:99Qq>T!3Y %DL*B}}bIob	/"/!B]]B&LBfiim$)IIOOD!q#a&(# 	+A]]B!A$"66Bad]**	+ 	ae6diimv-
h99Ra=D $))nu$5)9S)@
1*% $))nu$5)9S)@YYvYYuv$$&,,R0Z
dRi#o1%-2U::A:
."r7Q;!u{{}"Wq["HB
 99Ra=G#
dii txx=A"!4
+"
((c/(
diioo
ggnnbdiY r   c                 R   t        |      dkD  r| j                  j                  |       t        | j                        dkD  re| j                  d   }|dv r| j                  j                  d       n|dk(  r| j                  j                  d       n|dk(  r| j                  j                  d       n|d	k(  r| j                  j                  d       n|d
k(  r| j                  j                  d       n}|dk(  r| j                  j                  d       n\|dk(  r| j                  j                  d       n;|dk(  r6| j                  rd}nd}| j                  j                  |dz          d| _        t        | j                        dkD  r| j                  d d | _        yd| _        y)Nr   rb   r;   z</p>
rI   z</cripple>
r7   </div>
rW   rU   z</dd></dl>
r   z</li></ul>
r   z</li></ol>
rK   </tr>r4   z	</table>
Fr   )r    rg   rq   rh   rk   )r   r   er   s       r   ru   zDpTranslator.closeEnv  s6   
3x!|TWW^^S*
488}q
((2,a	
c477>>8-8TWW^^^58TWW^^Z18TWW^^Z18TWW^^^58TWW^^^58TWW^^^58<<gb<)	TXX	txx}DH  DHr   c                    d}| j                   |kD  rm| xj                   dz  c_         | j                  | j                      }|dk(  r|dz  }n|dk(  r|dz  }n|dz  }| j                  d d | _        | j                   |kD  rm|d	k(  r|d
z  }|S )Nr4   r   rU   z
</dd></dl>r   z
</li></ul>z
</li></ol>rb   r   r:   )ri   rj   )r   r   r.   rI   s       r   r   zDpTranslator.unindent  s    
A
**u

jjAoj
--


#a	
c	\8	\	\mmCR(dm **u
 z191Hr   c                     | j                          d}|d|z   dz   z  }| j                  j                  |       d| _        y)Nr4   <h1></h1>
<hr>
T)r   rg   rq   r   r   argstrhtmls      r   r   zDpTranslator.head2  s=    MMODFVOo--DGGNNDDNr   c                      d}|d|z   dz   z  }|S )Nr4   r   r   r1   r   s      r   r   zDpTranslator.head  s    DFVOo--DKr   c                    | j                          d}| j                  t        | j                        dz   d  j	                  d      }t        |      dkD  rd}t        |      dkD  rZd}t        dt        |      dz
        D ]  }|dz  }	 t        dt        |      dz
        D ]  }|d	|z   d
z   ||   z   dz   z  }|d d } |dz  }| j                  j                  |       d}y)Nr4   r   r   r   <div style="float:right;">
r   r   r   / <a href=""></a>
r   T)r   r   r    r   r!   r"   rg   rq   )r   r   r   r   r   r   s         r   r   zDpTranslator.navpath2  s    MMOD		#dll#A%&'--c2A
1vz+d	Q!q#a&(# 	A
+"	q#a&(# 	A
-"$t+ad2X=
=$#2w"	 jd
ggnndir   c                 l   d}| j                   t        | j                        dz   d  j                  d      }t        |      dkD  rod}t        |      dkD  rZd}t	        dt        |      dz
        D ]  }|dz  }	 t	        dt        |      dz
        D ]  }|d	|z   d
z   ||   z   dz   z  }|d d } |dz  }|S )Nr4   r   r   r   r   r   r   r   r   r   r   r   r   )r   r    r   r!   r"   )r   r   r   r   r   s        r   r   zDpTranslator.navpath  s    D		#dll#A%&'--c2A
1vz+d	Q!q#a&(# 	A
+"	q#a&(# 	A
-"$t+ad2X=
=$#2w"	 jdKr   c                 2    d| _         | j                  |      S )NT)r   r   r   r   s     r   r   zDpTranslator.person  s    DN;;  r   c                    d}|j                  d      }t        |      }|dkD  r|d   j                         | _        |d|d   j                         z   dz   |d   j                         z   dz   z  }t	        d|      D ]:  }|dk(  r|d	||   j                         z   z  }"|d
||   j                         z   z  }< |dkD  r|dz  }|dz  }n|d|z   dz   z  }|dz  }d| _        |S )Nr4   ,r   r   r   z <i>rM   r    (, )z</h1>
r?   T)r!   r    rw   rf   r"   r   )r   r   r   argsr   r   s         r   r   zDpTranslator.couple  s     D<<D
d)C
Qw!W]]_dl
ftAw}}&/$q'--/AFJJdQs| -!644$q'--/114dT!W]]_,,d- 
q$#+$
id
fvo	))dHDDNKr   c                    d}|j                         j                  d      }t        dt        |            D ]  }||   j                         j                  d      }|dz  }t        |      dkD  r|d   j                         j                  d      }t        |      dkD  r|d   dz   | j                  z   }n| j                  }t        dt        |            D ]  }|d||   z   z  } |d	| j                  |      z   d
z   z  }t        |      dkD  r=| j                  |d   j                  d      j                               }|d|z   dz   z  }n|dz  }|dz  }! |dz  }d| _        |S )Nz <p>Children:</p>
<dl><dd><table>r:   r   (
<tr>r   r   r   r_   r\   r   z<td>(z)</td>
z
<td></td>
r   
</table></dd></dl>
T)rw   r!   r"   r    rf   r   r   )	r   r   r   r   r   psr   r;   p2s	            r   r   zDpTranslator.children  sa   .D<<>%D1SY 7==?  %b
hd	R1qEKKM$q6A:dTkDLL(!ll!q#a&! 	A
tad{
!	,,y88r7Q;~~r!u{{3/5579"
'B,+
+$
-
$
god#$ 	$$DDNKr   c                      || _         d| _        yNTr4   )rl   r   r   s     r   r   zDpTranslator.table24  s    DODNr   c                     || _         	 y)Nr:   )rl   r   s     r   r   zDpTranslator.table;  s    DO(T r   c                     | j                          | j                  |      }| j                  j                  |       d| _        yr   )r   r   rg   rq   r   r   r   r   s      r   r   zDpTranslator.img2n  3    MMO	6	BGGNNBDNr   c                    |j                         j                  d      }d}d}d}d}t        dt        |            D ]R  }||   j                         ||<   ||   dd  dk(  s||   dd  dk(  r||   }5||   d	k(  rd
}@||   dk(  rd
}K|dkD  sQ|}T t        |d         dkD  rd}|dkD  r|d|z   dz   z  }|r|dz  }n|r|dz  }|dz  }|d|d   z   dz   z  }|r|d|d   z   dz   z  }|dz  }n$|r|d|d   z   dz   z  }|dz  }n|d|d   z   dz   z  }|dk(  r|d|z   dz   |z   dz   z  }n|dz  }|dz  }|dkD  r|d||   z   dz   z  }|S d|z   d z   }|S )!NrK   r   150pxFr   pxrb   rW   leftTrightr4   z<figure style="width:z;display:inline-block;zfloat:left;zfloat:right;">
	<a href="
<img src="z" z$style="float:left;margin-right:10px;z$style="float:right;margin-left:10px;z	" style="z
max-width:z;max-height:z;">
z"max-width:100%;max-height=100%;">
r   <figcaption>z</figcaption>
</figure>
z
[img: parameter error...] (z)
)rw   r!   r"   r    )	r   r   r   capr   r   r   r   r   s	            r   r   zDpTranslator.imgw  s   <<>$D
C	BDE1SY Qd1g 
a	a!4!W 7f7gq5& 47|ab	q
%b()AAA}$B.(B
fK$q'!F**b	
lDG#d**
44
lT!W$t++
44
lT!W${22	2b7:7BB277BHnb	q
ntCy(+GGG I +V3e;bIr   c                     | j                          | j                  |      }| j                  j                  |       d| _        yr   )r   r   rg   rq   r   r   s      r   r   zDpTranslator.gallery2  s3    MMO	v	BGGNNBDNr   c                    |j                         j                  d      }d}|dz  }t        |      dkD  rt        dt        |            D ]  }||   j                         j                  d      }t        |      dkD  r|d   j                         }nd}t        |      dkD  r|d   j                         }nd}|dz  }t        |      dkD  r|d|z   d	z   z  }|d
|z   dz   z  }|dz  }t        |      dkD  r|d|z   dz   z  }nA| j                  dz   |z   }	 t        |      }	|	d   }
|
d k7  r|d|
j                         z   dz   z  }|dz  } |dz  }|S # t        $ r}t        t        |             Y d }~0d }~ww xY w)Nr:   z	<center>
r   rK   r4   r   z	<figure>
r  r  r  z" style=width:100%;>
</a>r  z</figcaption>
r   zcaption/abstractz
</figure>
z
</center>
)
rw   r!   r    r"   r   r   decode	Exceptionrp   rx   )r   r   r   r   r   r   r*   titleffninfor  r   s               r   r   zDpTranslator.gallery  s   <<>%D	B,B
4y1}Qs4y! !GMMO!!#&q6A:tzz|""q6A:A$**,%%
lr7Q;
b 6)
)"
r!$<<
<"
,"u:>
&)::
:" 		C"$#S?D)*Cd{NSZZ\14EEEb 	m?D -B I  3q6OOs   .E	E6E11E6c                     | j                          | j                  |      }| j                  j                  |       d| _        yr   )r   r   rg   rq   r   r   s      r   r   zDpTranslator.dir2  r   r   c                 x   t        |      dk  rd}|d   dk(  r| j                  |z   }n| j                  dz   |z   }t        |      }|t        | j                        d  dz   }d}t        |      t        | j                        k\  rd|z   dz   }t        j                  j                  |      r|dz  }t        |      }d }|j                  |	       t        d
      D ]W  }|D ]P  }t        |      dkD  s|d   dk7  s| j                  |z   |z   }	|dk(  s3|dz  }|d|z   |z   dz   |z   dz   z  }|dz  }R Y |dz  }|S )Nr   r   r   r4   z<p><em>Directory: z
</em></p>
z<dl><dd><table>c                 "    | j                         S )N)r   )r   s    r   myFuncz DpTranslator.dir.<locals>.myFunc  s    
r   )keyr   r   z<td><a href="r   z
</a></td>
r   r   )	r    r   r   r   r(   r   r   sortr"   )
r   r   r*   locFnr   filesr  r   ffn2s
             r   r   zDpTranslator.dir  s]   
4yA~dAw#~<<$b99s?T!b	"Bs4<< !"S(E	B
2w#dll##%'-7b		
	

v

 q 	A a1vzadckLL5(1,c aho-1D81<}LLg	( 	&&Ir   c                     | j                          | j                  |      }| j                  j                  |       d| _        yr   )r   r   rg   rq   r   r   s      r   r   zDpTranslator.mp32  r   r   c                     d|z   dz   }|d   dk(  r| j                   |z   }n| j                  dz   |z   }t        j                  j                  |      rd|z   dz   }|S )N<i><strike></strike></i>
r   r   z0<audio controls preload="metadata"><source src="z" type="audio/mpeg"></audio>)r   r   r(   r)   )r   r   r   r*   s       r   r   zDpTranslator.mp3(  sc    6!$55DayC<<& b99s?V#b	ww~~r?&HKiidKr   c                     | j                          | j                  |      }| j                  j                  |       d| _        yr   )r   r   rg   rq   r   r   s      r   r   zDpTranslator.mp3shuffle24  s3    MMO	&	"BGGNNBDNr   c                     dt         j                        z   }dt         j                        z   }dt         j                        z   }dt         j                        z   }dt         j                        z   } xj                  dz  c_        |j                         j                  d      }d}t	        |      d	k  st	        |      dk(  rt	        |d	         d	k(  rd
g}g |D ]<  }	|	d	   dk(  r j
                  |	z   }
n j                  dz   |	z   }
t        |
      }
t	        |
      t	         j
                        k\  s[t        j                  j                  |
      r fd |
       t        j                  j                  |
      rt	        |
      d	kD  s|
d	   d
k7  sd}|
j                  d
      }|dk7  r|
|d  j                         }|dk(  s|dk(  r)j                  |
t	         j
                        d         t        dt               1t        d|
       ? t	              d	kD  rt!        t	                    D ]6  }t#        j$                  d	t	              dz
        }|   }|   |<   ||<   8 d|z   dz   d	   z   dz   |z   dz   d	   z   dz   |z   dz   }t!        t	                    D ].  }d|   z   dz   }|t	              dz
  k  r|dz  }n|dz  }||z  }0 |d|z   dz   |z   dz   |z   dz   |z   d z   |z   d!z   |z   d"z   |z   d#z   |z   d$z   |z   d%z   |z   d&z   d'z   dz   d(z   d)z   d*z   |z   d+z   z  }|S ),N
myAudioTxtmyAudioslsiaudr   r:   r4   r   r   r   c                    t        |       }|D ]  }t        |      dkD  s|d   dk7  sd}|j                  d      }|dk7  r||d  j                         }|dk(  s|dk(  r.j	                  | t        j
                        d  dz   |z          ~| dz   |z   }t        j                  j                  |      r	 |       t        d|        y )	Nr   r   r4   rb   .mp3.m4ar   mp3shuffle() skipped: )
r   r    rfindr   rq   r   r(   r   r   rp   )	r*   r  r  tyr   ffmp3sr   traverseDirs	         r   r+  z,DpTranslator.mp3shuffle.<locals>.traverseDir_  s    RME 9Q!!GGCL7u{{}"<2<++r#dll"3"45c9!;= #vax"WW]]B(
  % 3Q8+9r   rb   r$  r%  r&  zmp3shuffle() not a file: z	<div id="r   z</div>
<audio id="z" controls><source src="z." type="audio/mpeg"></audio>
<script>
  const z = [
z    ""z,
z];
z  let z = 0;
  let z = document.getElementById("z");
  z.onended = function() {
    z++;
    if (z >= z	.length) z = 0;
    let src = rH   z,];
    this.src = src;
    this.innerHTML = z'<source src=z'+src+'z" type="audio/mpeg">zV';
    this.play();
    // Show what song we are playing
    document.getElementById("z#").innerHTML = src;
  };
</script>
)rx   r   rw   r!   r    r   r   r   r(   r   r)   r'  r   rq   rp   r  r"   randomrandint)r   r   r  r  r   r!  r"  r   r   argr*   r(  r   iijjtr.   r*  r+  s   `                @@r   r   zDpTranslator.mp3shuffle@  s   c$''l*JDGG$G	c$''l	B	c$''l	B
DGG
CGGqLG <<>%D	B
4yA~#d)q.Sa\Q->Ud
 D =3 
Q3\\CYY_s"B=b	RC%	%77=="96 r
WW^^R! Wq[RUc\BABwab6<<>bV|rV| kk"S./01 -q2 ,b
2{=3F 4y1}
 c$i  "^^Ac$ik*H8RR	 	Jt#d1g- 1 		8	9Q		 		 		 	 SY !DGOCD	!a5ja6ka
a	
 	  		3	44;	<=			 		 		 		  		  !,		, -/		/0		
 	
  	 
 !#	#
$ 	  !0	0 14	4 5>	> ?U	UV(
	( )3
	34	b  Ir   c                     d|z   dz   }|j                  d      }t        |      dkD  r7t        |      dk\  rd|d   z   dz   |d   z   d	z   }nd|d   z   dz   |d   z   d	z   }d
| _        |S )Nr  r  rK   r   r   r  " target="_blank">r   r  T)r!   r    r   r   r   r   r   s       r   r   zDpTranslator.http2  s    6!$55D<<D
4y1}	TaT!W$';;d1gENT!W$';;d1gEN
 DNKr   c                     d|z   dz   }|j                  d      }t        |      dkD  r8t        |      dk\  rd|d   z   dz   |d   z   d	z   }|S d|d   z   dz   |d   z   d	z   }|S )
Nr  r  rK   r   r   r  r4  r   r  )r!   r    r5  s       r   r   zDpTranslator.http  s    6!$55D<<D
4y1}	TaT!W$';;d1gEN K T!W$';;d1gENKr   c           	      v   d|z   dz   }|j                  d      }t        |      dkD  rt        dt        |            D ]  }||   j                         ||<    t        |      dk  r|j	                  |d          t        |d         dkD  r;|d   d   dk(  r0	 | j                         |d   z   |d<   | j                  dz   |d   z   }n| j                  dz   |d   z   }t        j                  j                  |      st        j                  j                  |      snd}d}d}d}	g }
g }|d   j                  d	      D ])  }|j                         }|dk7  s|j	                  |       + t        |      d
kD  rX	 |d   }|d
   }	g }t        d
t        |            D ]Y  }||   j                  d      D ]@  }|j                         }t        |      dkD  s"|j	                  |j                                B [ d| j                  z   dz   |j                         z   }| j                  |z   }t        |      rvt        |      D cg c]  }t        t        ||            s| }}|D ]'  }d}|D ]
  }||vsd} n |s|
j	                  |       ) t        |
      dkD  r|dz   |
d   z   dz   }t        |      dkD  s|rn|d   }|d
   |d<   ||d
<   d}Wt        |      dkD  r| j                  dz   |d   z   }t        |      r|t        | j                        d  dz   }nI| j                  dz   |d   j                         z   }t        |      r|t        | j                        d  dz   }t        |      dkD  r t        |      dk  r|j	                  |d          | j                         |z   }d| j                  |      z   dz   }t        |      d
kD  r||d
   dz   z  }n{|r`|	dk7  rU||	dz   |z   z  }t        |      dkD  rVt        dt        |            D ]  }|dk(  r|d||   z   z  }|d||   z   z  }  |dz  }n||z  }n||j                  d      z  }|dz  }t        |
      d
kD  rL|d|
d
   z   dz   z  }n<d|j                  d      z   dz   }n#|d   }| j                   st        j                  j                  |      r1|dz   }t        j                  j                  |      r|}|d   dz   |d<   |d   }d}|j#                  d      }|dk7  r||d  j                         }|dk(  s|dk(  rW|d t        |      t        |      z
   dz   }t        j                  j                  |      r|t        | j                        d
z   d  }t        |      dk\  rd|z   dz   |d
   z   dz   }nd|z   dz   |d   z   dz   }d| _        |S c c}w )Nr  r  rK   r   r   r   Fr4   r   r   Tr7   r  r   r  r   r   r   r   z<i><strike> (dup: z)</strike></i>
r'   r   rb   z.txtz.wwz.html)r!   r    r"   rw   rq   r   r   r(   r)   r   r   r   r   r   r   r,   r   r'  r   )r   r   r   r   r   r*   switchedr   surgivenmatchesr   r.   worddnr  dirsfoundr   f3r+   r(  s                         r   r   zDpTranslator.localFile  s   6!$55D<<D
4y1}Qs4y!<!T!W]]_47<	TQDG,	T!W	d1gajC/		 .."T!W,QYY_tAw&YY_tAw&ggnnb"bggmmR&9as# 	$Aggi!"Wahhm	$ q6A:A$CaDED1SV_ 8tzz# 8!GGIq6A:t{{AGGI788 tyy3&4B"Bb{!(CAd2qk0BaCdC .! Bq[!E '..!-. W!"s(WQZ*?#*E44y1}!AQ4AaDAaDH5 8 VaZyy31%"B[c$,,'()C/D S1Q4::</Bb{DLL)*+c1d t9q=Y]DKKQ0!D($t~~d33d:$Y]DGf$$D"c))q6A: 3q6? .aAvttad{2t$1+-$. #+$ fll4((dFND\A(71:58JJJDd!336GG$ !W  WW]]B m#Bww~~r#bQ-/d1gAw""hhsm!"WABB6\R5[$SWSW_%/Br"c$))nQ&'(b t9>r!D(472V;$r!D(472V;$ DNKS Ds   ?V6V6N)*__name__
__module____qualname__r   r   r,   r/   r2   r   rv   rt   ry   rz   r   r   r   r   r   ru   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r1   r   r   r
   r
      s    E"" nd-`< P~D%R>[@Mb8"*$!.6/f2l+^-b}~$Yr   r
   )os.pathr(   r   r   r   r   r   r-  	iptcinfo3r   objectr
   r1   r   r   <module>rG     s)      ( (  n6 nr   