Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / tools / perl-5.8.0 / doc / MHonArc / resources / mimefilters.html
CommitLineData
86530b38
AT
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML//EN">
2<html>
3<head>
4<title>MHonArc Resources: MIMEFILTERS</title>
5</head>
6<body>
7<!--x-rc-nav-->
8<table border=0><tr valign="top">
9<td align="left" width="50%">[Prev:&nbsp;<a href="mimeexcs.html">MIMEEXCS</a>]</td><td><nobr>[<a href="../resources.html#mimefilters">Resources</a>][<a href="../mhonarc.html">TOC</a>]</nobr></td><td align="right" width="50%">[Next:&nbsp;<a href="modtime.html">MODTIME</a>]</td></tr></table>
10<!--/x-rc-nav-->
11<hr>
12<h1>MIMEFILTERS</h1>
13
14<!-- *************************************************************** -->
15<hr>
16<h2>Syntax</h2>
17
18<dl>
19
20<dt><strong>Envariable</strong></dt>
21<dd><p>N/A
22</p>
23</dd>
24
25<dt><strong>Element</strong></dt>
26<dd><p>
27<code>&lt;MIMEFILTERS&gt;</code><br>
28<var>filter-specification</var><br>
29<var>...</var><br>
30<code>&lt;/MIMEFILTERS&gt;</code><br>
31</p>
32</dd>
33
34<dt><strong>Command-line Option</strong></dt>
35<dd><p>N/A
36</p>
37</dd>
38
39</dl>
40
41<!-- *************************************************************** -->
42<hr>
43<h2>Description</h2>
44
45<P>The resource MIMEFILTERS is used to hook in user specifed filters
46into MHonArc. The MIMEFILTERS resource can only be set via the
47<CODE>MIMEFILTERS</CODE> element. The syntax for each line of the
48the <CODE>MIMEFILTERS</CODE> element is as follows: </P>
49
50<P><var>content-type</var><CODE>;</CODE><var>routine-name</var><CODE>;</CODE><var>file-of-routine</var> </P>
51
52<P>The definition of each semi-colon-separated value is as follows:
53</P>
54
55<DL>
56<DT><var>content-type</var>
57
58<DD><P>The MIME content-type the filter processes. An explicit
59content-type (base/subtype) or a base content-type (base/*)
60can be specified.
61</P>
62
63<DT><var>routine-name</var>
64<DD><P>The actual routine name of the filter. The name
65should be fully qualified by the package it is defined in
66(e.g. "<CODE>mypackage::filter</CODE>"). </P>
67
68<DT><var>file-of-routine</var>
69<DD><P>The name of the file that defines
70<var>routine-name</var>. If the file is not a full
71pathname, MHonArc finds the file by looking in the
72standard include paths of Perl, and the paths specified by the
73<A HREF="perlinc.html">PERLINC</A>
74resource.
75</P>
76
77</DL>
78
79<P>Whitespace is stripped out for each filter specification.
80</P>
81
82<H3><a name="writefilters">Writing Filters</a></H3>
83
84<P>If you want to write your own filter for use in MHonArc,
85you need to know the Perl programming language. The following
86information assumes you know Perl.
87</P>
88
89<table border=0 cellpadding=4>
90<tr valign=top>
91<td><strong>NOTE</strong></td>
92<td><p>As of v2.5 of MHonArc, the API for filters is different from
93v2.4.x, and earlier. The following describes the v2.5 API for
94filters.
95</p>
96</td>
97</tr>
98</table>
99
100<table border=0 cellpadding=4>
101<tr valign=top>
102<td><strong>NOTE</strong></td>
103<td><p>The default filters provided by MHonArc are described
104in the <strong>Default Settings</strong> section.
105</p>
106</td>
107</tr>
108</table>
109
110<H4>Function Interface of Filter</H4>
111
112<P>MHonArc interfaces with MIME filters by calling a routine
113with a specific set of arguments. The prototype of the interface
114routine is as follows: </P>
115
116<PRE>
117sub <var>filter</var> {
118 my(<b>$fields_hash_ref</b>, <b>$body_data_ref</b>, <b>$is_decoded</b>, <b>$filter_args</b>) = @_;
119
120 <var># Filter code here
121
122 # The last statement should be the return value, unless an
123 # explicit return is done. See the following for the format of the
124 # return value.</var>
125}
126</PRE>
127
128<H5>Parameter Descriptions</H5>
129
130<table cellspacing=1 border=0 cellpadding=4>
131
132<tr valign=top>
133<td><strong><code>$fields_hash_ref</code></strong></td>
134<td><p>A reference to hash of message/part header
135fields. Keys are field names in lowercase
136and values are array references containing the
137field values. For example, to obtain the
138content-type, if defined, you would do:
139</p>
140<pre>
141 $fields_hash_ref-&gt;{'content-type'}[0]</pre>
142<p>Values for a fields are stored in arrays since
143duplication of fields are possible. For example,
144the <tt>Received:</tt> header field is typically repeated
145multiple times. For fields that only occur once,
146then array for the field will only contain one
147item.
148</p>
149</td>
150</tr>
151
152<tr valign=top>
153<td><strong><code>$body_data_ref</code></strong></td>
154<td><p>Reference to body data. It is okay for the
155filter to modify the text in-place.
156</p>
157</td>
158</tr>
159
160<tr valign=top>
161<td><strong><code>$is_decoded</code></strong></td>
162<td><p>Boolean flag if body data has been decoded.
163This is normally true unless some non-standard
164content-transfer-encoding is used. See
165<a href="mimedecoders.html">MIMEDECODERS</a> on how
166to register decoders for various content-transfer-encodings.
167</p>
168</td>
169</tr>
170
171<tr valign=top>
172<td><strong><code>$filter_args</code></strong></td>
173<td><P>This is an optional argument string that may be used to modify the
174behavior of the filter. The format of this string is determined by the filter
175itself. The value of the string is set by the
176<a href="mimeargs.html">MIMEARGS</a> resource.
177</P>
178</td>
179</tr>
180
181</table>
182
183<H5>Return Value</H5>
184
185<p>The return value is treated as a list. The first item of the list
186is a string representing the HTML markup to insert in the HTMLized
187message. An empty string, or <tt>undef</tt> may be returned to tell MHonArc
188that the routine was unable to filter data.
189</p>
190<p>Any other list items are treated as names of any files that were
191generated by the filter. MHonArc needs to keep track if any
192extra files that a filter may generate in order for MHonArc to
193delete those files if the message gets removed from the archive.
194</p>
195
196<table border=0 cellpadding=4>
197<tr valign=top>
198<td><strong>NOTE</strong></td>
199<td><p>If you want MHonArc to treat the data as filtered, but not
200have anything displayed on the page, just return a string with
201a single space character.
202</p>
203</td>
204</tr>
205</table>
206<table border=0 cellpadding=4>
207<tr valign=top>
208<td><strong>NOTE</strong></td>
209<td><p>If the filter creates a subdirectory with files, the filter
210only needs to return the subdirectory in the return list. If
211the message gets removed, MHonArc will delete the entire
212directory.
213</p>
214</td>
215</tr>
216</table>
217
218<H4>Filter Writing Tips</H4>
219
220<P>The following recommendations/tips are given to help you write
221filters: </P>
222
223<UL>
224<LI><P>Qualify your filter in its own package. This eliminates possible
225variable/routine conflicts with MHonArc.
226</P>
227
228<LI><P>If the filter creates derived files (like the image filters),
229you may use the variable <strong><CODE>$mhonarc::OUTDIR</CODE></strong>
230to determine the
231location of the mail archive.
232</P>
233<table border=0 cellpadding=4>
234<tr valign=top>
235<td><strong>NOTE</strong></td>
236<td><p><strong>Do not include</strong>
237<strong><CODE>$mhonarc::OUTDIR</CODE></strong> as part as the
238filename that is returned to MHonArc. If the filter
239does create files, just return the base name.
240</p>
241</td>
242</tr>
243</table>
244<p></p>
245
246<LI><P>Look at the default filters contained in the distribution
247of MHonArc. You can use these as templates for writing
248your own. </P>
249
250<LI><P>Make sure your Perl source file ends with a true statement
251(like "<CODE>1;</CODE>"). MHonArc just performs a
252<strong><CODE>require</CODE></strong>
253on the file, and if the file does not return
254true, Perl will abort execution. </P>
255
256<li><p>Test your filter before production use.
257</p>
258
259</UL>
260
261<H4>Using C</H4>
262
263<P>If a MIME filter requires the utilization of a C program, or
264other non-Perl executable, a Perl wrapper must be written for the
265program in-order to interface with MHonArc. The wrapper must
266follow the conventions described in
267<a href="#writefilters">Writing Filters</a>.
268</P>
269
270<!-- *************************************************************** -->
271<hr>
272<h2>Default Setting</h2>
273
274<table border=0 cellpadding=4>
275<tr valign=top>
276<td><strong>NOTE</strong></td>
277<td><p>It is important to have an explicit entry for
278<b><tt>application/octet-stream</tt></b> for handling unknown
279media-types.
280</p>
281</td>
282</tr>
283</table>
284
285<PRE>
286<b>&lt;MIMEFilters&gt;</b>
287application/octet-stream; <a href="#m2h_external">m2h_external::filter</a>; mhexternal.pl
288application/*; <a href="#m2h_external">m2h_external::filter</a>; mhexternal.pl
289application/x-patch; <a href="#m2h_text_plain">m2h_text_plain::filter</a>; mhtxtplain.pl
290audio/*; <a href="#m2h_external">m2h_external::filter</a>; mhexternal.pl
291chemical/*; <a href="#m2h_external">m2h_external::filter</a>; mhexternal.pl
292model/*; <a href="#m2h_external">m2h_external::filter</a>; mhexternal.pl
293image/*; <a href="#m2h_external">m2h_external::filter</a>; mhexternal.pl
294message/delivery-status; <a href="#m2h_text_plain">m2h_text_plain::filter</a>; mhtxtplain.pl
295message/external-body; <a href="#m2h_msg_extbody">m2h_msg_extbody::filter</a>; mhmsgextbody.pl
296message/partial; <a href="#m2h_text_plain">m2h_text_plain::filter</a>; mhtxtplain.pl
297text/*; <a href="#m2h_text_plain">m2h_text_plain::filter</a>; mhtxtplain.pl
298text/enriched; <a href="#m2h_text_enriched">m2h_text_enriched::filter</a>; mhtxtenrich.pl
299text/html; <a href="#m2h_text_html">m2h_text_html::filter</a>; mhtxthtml.pl
300text/plain; <a href="#m2h_text_plain">m2h_text_plain::filter</a>; mhtxtplain.pl
301text/richtext; <a href="#m2h_text_enriched">m2h_text_enriched::filter</a>; mhtxtenrich.pl
302text/setext; <a href="#m2h_text_setext">m2h_text_setext::filter</a>; mhtxtsetext.pl
303text/tab-separated-values; <a href="#m2h_text_tsv">m2h_text_tsv::filter</a>; mhtxttsv.pl
304text/x-html; <a href="#m2h_text_html">m2h_text_html::filter</a>; mhtxthtml.pl
305text/x-setext; <a href="#m2h_text_setext">m2h_text_setext::filter</a>; mhtxtsetext.pl
306video/*; <a href="#m2h_external">m2h_external::filter</a>; mhexternal.pl
307x-sun-attachment; <a href="#m2h_text_plain">m2h_text_plain::filter</a>; mhtxtplain.pl
308<b>&lt;/MIMEFilters&gt;</b>
309</PRE>
310
311<p>The following describes the behavior of each filter.
312</p>
313
314<hr size=0 noshade width="50%">
315<H3><a name="m2h_external">m2h_external::filter</a></h3>
316
317<P>The filter extracts the data into a separate file and puts
318a hyperlink to the file into the HTMLized message. The following
319is an example how the link is formatted:
320</P>
321<dl>
322<dd><p><strong>Attachment:
323<a href=""><tt>blueball.gif</tt></a></strong><br>
324<em>Description:</em> Blue ball GIF icon</p>
325</dd></dl>
326
327<p>The description text is retrieved from the <tt>Content-Disposition</tt>
328message header field, if defined. If not defined, a generic description
329will be provided based on the specified content-type of the data.
330</p>
331
332<p>If the <tt>useicon</tt> filter argument has been specified for the
333filter, the following format will be used:
334</p>
335<dl><dd><p><strong><a href="" ><img src="../monicon.png" align="left" border=0 alt="Attachment:"></a>
336<a href="" ><tt>blueball.gif</tt></a></strong><br>
337<em>Description:</em> Blue ball GIF icon</p>
338</dd></dl>
339
340<p>The actual icon used is based upon the <a href="icons.html">ICONS</a>
341resource.
342</p>
343
344<P>By default, the filter ignores any filename specification
345given in the message when writing the data to disk.
346A unique filename with an extenstion based upon sub-type is
347generated.
348</P>
349
350<p><strong><tt>m2h_external::filter</tt></strong> can take the
351following
352<a href="mimeargs.html">arguments</a>:
353</p>
354
355<table cellspacing=1 border=0 cellpadding=4>
356<tr valign=top>
357<td><strong><tt>excludeexts=</tt></strong><var>ext1</var><tt>,</tt>...</td>
358<td><p>A comma separated list of message specified filename extensions
359to exclude. I.e. If the filename extension matches an extension
360in excludeexts, the content will not be written. The return markup
361will contain the name of the attachment, but no link to the data.
362This option is best used with application/octet-stream to exclude
363unwanted data that is not tagged with the proper content-type. The
364<a href="#m2h_null"><tt>m2h_null::filter</tt></a> can be used to
365exclude content by content-type.
366</p>
367</td>
368</tr>
369<tr valign=top>
370<td><strong><tt>ext=<var>ext</var></tt></strong></td>
371<td><p>Use <var>ext</var> as the filename extension.
372The filter already has a large list of extensions for various
373content-types. Use this argument if you process a
374content-type not recognized by the filter.
375</p></td>
376</tr>
377<tr valign=top>
378<td><strong><tt>forceattach</tt></strong></td>
379<td><p>Force images to never be displayed inline, overriding any
380Content-Disposition setting.
381</p></td>
382</tr>
383<tr valign=top>
384<td><strong><tt>forceinline</tt></strong></td>
385<td><p>Force images to be displayed inline, overriding any
386Content-Disposition setting.
387</p></td>
388</tr>
389<tr valign=top>
390<td><strong><tt>frame</tt></strong></td>
391<td><p>Draw a frame around the attachment link.
392</p></td>
393</tr>
394<tr valign=top>
395<td><strong><tt>iconurl="<var>url</var>"</tt></strong></td>
396<td><p>Use "<var>url</var>" as the url for the icon to use
397if the <strong><tt>useicon</tt></strong> option is set.
398This option will override any setting defined by the
399<a href="icons.html">ICONS</a> resource.
400The double quotes are required.
401</p></td>
402</tr>
403<tr valign=top>
404<td><strong><tt>inline</tt></strong></td>
405<td><p>Inline image data by default if content-disposition not defined.
406</p></td>
407</tr>
408<tr valign=top>
409<td><strong><tt>inlineexts=</tt></strong><var>ext1</var><tt>,</tt>...</td>
410<td><p>A comma separated list of message specified filename
411extensions to treat as possible inline data.
412Applicable when content-type is not <tt>image/</tt><var>*</var> and
413<b><tt>usename</tt></b> or <b><tt>usenameext</tt></b> is in effect.
414</p></td>
415</tr>
416<tr valign=top>
417<td><strong><tt>type="<var>description</var>"</tt></strong></td>
418<td><p>Use "<var>description</var>" as type description of the
419data. The double quotes are required.
420The filter already has a large list of descriptions for various
421content-types. Use this argument if you process a
422content-type not recognized by the filter.
423</p></td>
424</tr>
425<tr valign=top>
426<td><strong><tt>subdir</tt></strong></td>
427<td><p>Place derived file in a subdirectory of the archive.
428The subdirectory will be called "<tt>msg<var>MSGNUM</var></tt>".
429This option may be useful if <strong><tt>usename</tt></strong> is
430specified to avoid security and name conflict problems.
431</p></td>
432</tr>
433<tr valign=top>
434<td><strong><tt>target=</tt></strong><var>name</var></td>
435<td><p>Set the TARGET attribute of anchor link to file
436Default value is undefined (ie. no TARGET attribute will be
437written).
438</p></td>
439</tr>
440<tr valign=top>
441<td><strong><tt>useicon</tt></strong></td>
442<td><p>Include a content-type icon with the hyperlink to
443the derived file. The icon used is the value of the
444<strong><tt>iconurl</tt></strong> option or the icon
445defined by the <a href="icons.html">ICONS</a> resource.
446</p></td>
447</tr>
448<tr valign=top>
449<td><strong><tt>usename</tt></strong></td>
450<td><p>Use (file)name attribute for determining name
451of derived file. Use this option with caution
452since it can lead to filename conflicts and
453security problems (however, see the <strong><tt>subdir</tt></strong>
454option).
455</p></td>
456</tr>
457<tr valign=top>
458<td><strong><tt>usenameext</tt></strong></td>
459<td><p>Use (file)name attribute for determining the extension
460of derived file. Use this option with caution
461since it can lead to
462security problems (however, see the <strong><tt>subdir</tt></strong>
463option).
464</p></td>
465</tr>
466</table>
467
468<p>All arguments should be separated by at least one space.</p>
469
470<p>The following table shows the default list of content-types with the
471filename extension used and a short
472description that <strong><tt>m2h_external::filter</tt></strong>
473recognizes:
474</p>
475
476<center>
477<!--X-Ext-CType-Start-->
478<table border=1 cellpadding=1>
479<tr bgcolor="#C0C0C0">
480<th align=left>Content-type</th><th align=center>Extension</th><th align=left>Description</th></tr>
481<tr valign="top">
482<td align=left><strong>application/astound</strong></td>
483<td align=center><tt>asd</tt></td>
484<td>Astound presentation</td></tr>
485<tr valign="top">
486<td align=left><strong>application/envoy</strong></td>
487<td align=center><tt>evy</tt></td>
488<td>Envoy file</td></tr>
489<tr valign="top">
490<td align=left><strong>application/fastman</strong></td>
491<td align=center><tt>lcc</tt></td>
492<td>fastman file</td></tr>
493<tr valign="top">
494<td align=left><strong>application/fractals</strong></td>
495<td align=center><tt>fif</tt></td>
496<td>Fractal Image Format</td></tr>
497<tr valign="top">
498<td align=left><strong>application/iges</strong></td>
499<td align=center><tt>iges</tt></td>
500<td>IGES file</td></tr>
501<tr valign="top">
502<td align=left><strong>application/mac-binhex40</strong></td>
503<td align=center><tt>hqx</tt></td>
504<td>Mac BinHex archive</td></tr>
505<tr valign="top">
506<td align=left><strong>application/mathematica</strong></td>
507<td align=center><tt>ma</tt></td>
508<td>Mathematica Notebook document</td></tr>
509<tr valign="top">
510<td align=left><strong>application/mbedlet</strong></td>
511<td align=center><tt>mbd</tt></td>
512<td>mbedlet file</td></tr>
513<tr valign="top">
514<td align=left><strong>application/ms-excel</strong></td>
515<td align=center><tt>xls</tt></td>
516<td>MS-Excel spreadsheet</td></tr>
517<tr valign="top">
518<td align=left><strong>application/ms-powerpoint</strong></td>
519<td align=center><tt>ppt</tt></td>
520<td>MS-Powerpoint presentation</td></tr>
521<tr valign="top">
522<td align=left><strong>application/ms-project</strong></td>
523<td align=center><tt>mpp</tt></td>
524<td>MS-Project file</td></tr>
525<tr valign="top">
526<td align=left><strong>application/msword</strong></td>
527<td align=center><tt>doc</tt></td>
528<td>MS-Word document</td></tr>
529<tr valign="top">
530<td align=left><strong>application/octet-stream</strong></td>
531<td align=center><tt>bin</tt></td>
532<td>Binary data</td></tr>
533<tr valign="top">
534<td align=left><strong>application/oda</strong></td>
535<td align=center><tt>oda</tt></td>
536<td>ODA file</td></tr>
537<tr valign="top">
538<td align=left><strong>application/pdf</strong></td>
539<td align=center><tt>pdf</tt></td>
540<td>Adobe PDF document</td></tr>
541<tr valign="top">
542<td align=left><strong>application/pgp</strong></td>
543<td align=center><tt>pgp</tt></td>
544<td>PGP message</td></tr>
545<tr valign="top">
546<td align=left><strong>application/pgp-signature</strong></td>
547<td align=center><tt>pgp</tt></td>
548<td>PGP signature</td></tr>
549<tr valign="top">
550<td align=left><strong>application/postscript</strong></td>
551<td align=center><tt>ps</tt></td>
552<td>PostScript document</td></tr>
553<tr valign="top">
554<td align=left><strong>application/rtf</strong></td>
555<td align=center><tt>rtf</tt></td>
556<td>RTF file</td></tr>
557<tr valign="top">
558<td align=left><strong>application/sgml</strong></td>
559<td align=center><tt>sgml</tt></td>
560<td>SGML document</td></tr>
561<tr valign="top">
562<td align=left><strong>application/studiom</strong></td>
563<td align=center><tt>smp</tt></td>
564<td>Studio M file</td></tr>
565<tr valign="top">
566<td align=left><strong>application/timbuktu</strong></td>
567<td align=center><tt>tbt</tt></td>
568<td>timbuktu file</td></tr>
569<tr valign="top">
570<td align=left><strong>application/vis5d</strong></td>
571<td align=center><tt>v5d</tt></td>
572<td>Vis5D dataset</td></tr>
573<tr valign="top">
574<td align=left><strong>application/vnd.framemaker</strong></td>
575<td align=center><tt>fm</tt></td>
576<td>FrameMaker document</td></tr>
577<tr valign="top">
578<td align=left><strong>application/vnd.hp-hpgl</strong></td>
579<td align=center><tt>hpg</tt></td>
580<td>HPGL file</td></tr>
581<tr valign="top">
582<td align=left><strong>application/vnd.lotus-1-2-3</strong></td>
583<td align=center><tt>123</tt></td>
584<td>Lotus 1-2-3</td></tr>
585<tr valign="top">
586<td align=left><strong>application/vnd.lotus-approach</strong></td>
587<td align=center><tt>apr</tt></td>
588<td>Lotus Approach</td></tr>
589<tr valign="top">
590<td align=left><strong>application/vnd.lotus-freelance</strong></td>
591<td align=center><tt>prz</tt></td>
592<td>Lotus Freelance</td></tr>
593<tr valign="top">
594<td align=left><strong>application/vnd.lotus-organizer</strong></td>
595<td align=center><tt>org</tt></td>
596<td>Lotus Organizer</td></tr>
597<tr valign="top">
598<td align=left><strong>application/vnd.lotus-screencam</strong></td>
599<td align=center><tt>scm</tt></td>
600<td>Lotus Screencam</td></tr>
601<tr valign="top">
602<td align=left><strong>application/vnd.lotus-wordpro</strong></td>
603<td align=center><tt>lwp</tt></td>
604<td>Lotus WordPro</td></tr>
605<tr valign="top">
606<td align=left><strong>application/vnd.mif</strong></td>
607<td align=center><tt>mif</tt></td>
608<td>Frame MIF document</td></tr>
609<tr valign="top">
610<td align=left><strong>application/vnd.ms-excel</strong></td>
611<td align=center><tt>xls</tt></td>
612<td>MS-Excel spreadsheet</td></tr>
613<tr valign="top">
614<td align=left><strong>application/vnd.ms-powerpoint</strong></td>
615<td align=center><tt>ppt</tt></td>
616<td>MS-Powerpoint presentation</td></tr>
617<tr valign="top">
618<td align=left><strong>application/vnd.ms-project</strong></td>
619<td align=center><tt>mpp</tt></td>
620<td>MS-Project file</td></tr>
621<tr valign="top">
622<td align=left><strong>application/vnd.stardivision.calc</strong></td>
623<td align=center><tt>sdc</tt></td>
624<td>StarCalc spreadsheet</td></tr>
625<tr valign="top">
626<td align=left><strong>application/vnd.stardivision.chart</strong></td>
627<td align=center><tt>sds</tt></td>
628<td>StarChart document</td></tr>
629<tr valign="top">
630<td align=left><strong>application/vnd.stardivision.draw</strong></td>
631<td align=center><tt>sda</tt></td>
632<td>StarDraw document</td></tr>
633<tr valign="top">
634<td align=left><strong>application/vnd.stardivision.impress</strong></td>
635<td align=center><tt>sdd</tt></td>
636<td>StarImpress presentation</td></tr>
637<tr valign="top">
638<td align=left><strong>application/vnd.stardivision.impress-packed</strong></td>
639<td align=center><tt>sdp</tt></td>
640<td>StarImpress packed file</td></tr>
641<tr valign="top">
642<td align=left><strong>application/vnd.stardivision.mail</strong></td>
643<td align=center><tt>smd</tt></td>
644<td>StarMail mail file</td></tr>
645<tr valign="top">
646<td align=left><strong>application/vnd.stardivision.math</strong></td>
647<td align=center><tt>smf</tt></td>
648<td>StarMath document</td></tr>
649<tr valign="top">
650<td align=left><strong>application/vnd.stardivision.writer</strong></td>
651<td align=center><tt>sdw</tt></td>
652<td>StarWriter document</td></tr>
653<tr valign="top">
654<td align=left><strong>application/vnd.stardivision.writer-global</strong></td>
655<td align=center><tt>sgl</tt></td>
656<td>StarWriter global document</td></tr>
657<tr valign="top">
658<td align=left><strong>application/vnd.sun.xml.calc</strong></td>
659<td align=center><tt>sxc</tt></td>
660<td>OpenOffice Calc spreadsheet</td></tr>
661<tr valign="top">
662<td align=left><strong>application/vnd.sun.xml.calc.template</strong></td>
663<td align=center><tt>stc</tt></td>
664<td>OpenOffice Calc template</td></tr>
665<tr valign="top">
666<td align=left><strong>application/vnd.sun.xml.draw</strong></td>
667<td align=center><tt>sxd</tt></td>
668<td>OpenOffice Draw document</td></tr>
669<tr valign="top">
670<td align=left><strong>application/vnd.sun.xml.draw.template</strong></td>
671<td align=center><tt>std</tt></td>
672<td>OpenOffice Draw Template</td></tr>
673<tr valign="top">
674<td align=left><strong>application/vnd.sun.xml.impress</strong></td>
675<td align=center><tt>sxi</tt></td>
676<td>OpenOffice Impress presentation</td></tr>
677<tr valign="top">
678<td align=left><strong>application/vnd.sun.xml.impress.template</strong></td>
679<td align=center><tt>sti</tt></td>
680<td>OpenOffice Impress template</td></tr>
681<tr valign="top">
682<td align=left><strong>application/vnd.sun.xml.math</strong></td>
683<td align=center><tt>sxm</tt></td>
684<td>OpenOffice Math documents</td></tr>
685<tr valign="top">
686<td align=left><strong>application/vnd.sun.xml.writer</strong></td>
687<td align=center><tt>sxw</tt></td>
688<td>OpenOffice Writer document</td></tr>
689<tr valign="top">
690<td align=left><strong>application/vnd.sun.xml.writer.global</strong></td>
691<td align=center><tt>sxg</tt></td>
692<td>OpenOffice Writer global document</td></tr>
693<tr valign="top">
694<td align=left><strong>application/vnd.sun.xml.writer.template</strong></td>
695<td align=center><tt>stw</tt></td>
696<td>OpenOffice Write template</td></tr>
697<tr valign="top">
698<td align=left><strong>application/winhlp</strong></td>
699<td align=center><tt>hlp</tt></td>
700<td>WinHelp document</td></tr>
701<tr valign="top">
702<td align=left><strong>application/wordperfect5.1</strong></td>
703<td align=center><tt>wp</tt></td>
704<td>WordPerfect 5.1 document</td></tr>
705<tr valign="top">
706<td align=left><strong>application/x-asap</strong></td>
707<td align=center><tt>asp</tt></td>
708<td>asap file</td></tr>
709<tr valign="top">
710<td align=left><strong>application/x-bcpio</strong></td>
711<td align=center><tt>bcpio</tt></td>
712<td>BCPIO file</td></tr>
713<tr valign="top">
714<td align=left><strong>application/x-bzip2</strong></td>
715<td align=center><tt>bz2</tt></td>
716<td>BZip2 compressed data</td></tr>
717<tr valign="top">
718<td align=left><strong>application/x-compress</strong></td>
719<td align=center><tt>Z</tt></td>
720<td>Unix compressed data</td></tr>
721<tr valign="top">
722<td align=left><strong>application/x-cpio</strong></td>
723<td align=center><tt>cpio</tt></td>
724<td>CPIO file</td></tr>
725<tr valign="top">
726<td align=left><strong>application/x-csh</strong></td>
727<td align=center><tt>csh</tt></td>
728<td>C-Shell script</td></tr>
729<tr valign="top">
730<td align=left><strong>application/x-dot</strong></td>
731<td align=center><tt>dot</tt></td>
732<td>dot file</td></tr>
733<tr valign="top">
734<td align=left><strong>application/x-dvi</strong></td>
735<td align=center><tt>dvi</tt></td>
736<td>TeX dvi file</td></tr>
737<tr valign="top">
738<td align=left><strong>application/x-earthtime</strong></td>
739<td align=center><tt>etc</tt></td>
740<td>Earthtime file</td></tr>
741<tr valign="top">
742<td align=left><strong>application/x-envoy</strong></td>
743<td align=center><tt>evy</tt></td>
744<td>Envoy file</td></tr>
745<tr valign="top">
746<td align=left><strong>application/x-excel</strong></td>
747<td align=center><tt>xls</tt></td>
748<td>MS-Excel spreadsheet</td></tr>
749<tr valign="top">
750<td align=left><strong>application/x-gtar</strong></td>
751<td align=center><tt>gtar</tt></td>
752<td>GNU Unix tar archive</td></tr>
753<tr valign="top">
754<td align=left><strong>application/x-gzip</strong></td>
755<td align=center><tt>gz</tt></td>
756<td>GNU Zip compressed data</td></tr>
757<tr valign="top">
758<td align=left><strong>application/x-hdf</strong></td>
759<td align=center><tt>hdf</tt></td>
760<td>HDF file</td></tr>
761<tr valign="top">
762<td align=left><strong>application/x-javascript</strong></td>
763<td align=center><tt>js</tt></td>
764<td>JavaScript source</td></tr>
765<tr valign="top">
766<td align=left><strong>application/x-ksh</strong></td>
767<td align=center><tt>ksh</tt></td>
768<td>Korn Shell script</td></tr>
769<tr valign="top">
770<td align=left><strong>application/x-latex</strong></td>
771<td align=center><tt>latex</tt></td>
772<td>LaTeX document</td></tr>
773<tr valign="top">
774<td align=left><strong>application/x-maker</strong></td>
775<td align=center><tt>fm</tt></td>
776<td>FrameMaker document</td></tr>
777<tr valign="top">
778<td align=left><strong>application/x-mif</strong></td>
779<td align=center><tt>mif</tt></td>
780<td>Frame MIF document</td></tr>
781<tr valign="top">
782<td align=left><strong>application/x-mocha</strong></td>
783<td align=center><tt>moc</tt></td>
784<td>mocha file</td></tr>
785<tr valign="top">
786<td align=left><strong>application/x-msaccess</strong></td>
787<td align=center><tt>mdb</tt></td>
788<td>MS-Access database</td></tr>
789<tr valign="top">
790<td align=left><strong>application/x-mscardfile</strong></td>
791<td align=center><tt>crd</tt></td>
792<td>MS-CardFile</td></tr>
793<tr valign="top">
794<td align=left><strong>application/x-msclip</strong></td>
795<td align=center><tt>clp</tt></td>
796<td>MS-Clip file</td></tr>
797<tr valign="top">
798<td align=left><strong>application/x-msmediaview</strong></td>
799<td align=center><tt>m14</tt></td>
800<td>MS-Media View file</td></tr>
801<tr valign="top">
802<td align=left><strong>application/x-msmetafile</strong></td>
803<td align=center><tt>wmf</tt></td>
804<td>MS-Metafile</td></tr>
805<tr valign="top">
806<td align=left><strong>application/x-msmoney</strong></td>
807<td align=center><tt>mny</tt></td>
808<td>MS-Money file</td></tr>
809<tr valign="top">
810<td align=left><strong>application/x-mspublisher</strong></td>
811<td align=center><tt>pub</tt></td>
812<td>MS-Publisher document</td></tr>
813<tr valign="top">
814<td align=left><strong>application/x-msschedule</strong></td>
815<td align=center><tt>scd</tt></td>
816<td>MS-Schedule file</td></tr>
817<tr valign="top">
818<td align=left><strong>application/x-msterminal</strong></td>
819<td align=center><tt>trm</tt></td>
820<td>MS-Terminal</td></tr>
821<tr valign="top">
822<td align=left><strong>application/x-mswrite</strong></td>
823<td align=center><tt>wri</tt></td>
824<td>MS-Write document</td></tr>
825<tr valign="top">
826<td align=left><strong>application/x-net-install</strong></td>
827<td align=center><tt>ins</tt></td>
828<td>Net Install file</td></tr>
829<tr valign="top">
830<td align=left><strong>application/x-netcdf</strong></td>
831<td align=center><tt>cdf</tt></td>
832<td>Cdf file</td></tr>
833<tr valign="top">
834<td align=left><strong>application/x-ns-proxy-autoconfig</strong></td>
835<td align=center><tt>proxy</tt></td>
836<td>Netscape Proxy Auto Config</td></tr>
837<tr valign="top">
838<td align=left><strong>application/x-patch</strong></td>
839<td align=center><tt>patch</tt></td>
840<td>Source code patch</td></tr>
841<tr valign="top">
842<td align=left><strong>application/x-perl</strong></td>
843<td align=center><tt>pl</tt></td>
844<td>Perl program</td></tr>
845<tr valign="top">
846<td align=left><strong>application/x-pointplus</strong></td>
847<td align=center><tt>css</tt></td>
848<td>pointplus file</td></tr>
849<tr valign="top">
850<td align=left><strong>application/x-salsa</strong></td>
851<td align=center><tt>slc</tt></td>
852<td>salsa file</td></tr>
853<tr valign="top">
854<td align=left><strong>application/x-script</strong></td>
855<td align=center><tt>script</tt></td>
856<td>A script file</td></tr>
857<tr valign="top">
858<td align=left><strong>application/x-sh</strong></td>
859<td align=center><tt>sh</tt></td>
860<td>Bourne shell script</td></tr>
861<tr valign="top">
862<td align=left><strong>application/x-shar</strong></td>
863<td align=center><tt>shar</tt></td>
864<td>Unix shell archive</td></tr>
865<tr valign="top">
866<td align=left><strong>application/x-sprite</strong></td>
867<td align=center><tt>spr</tt></td>
868<td>sprite file</td></tr>
869<tr valign="top">
870<td align=left><strong>application/x-stuffit</strong></td>
871<td align=center><tt>sit</tt></td>
872<td>Macintosh archive</td></tr>
873<tr valign="top">
874<td align=left><strong>application/x-sv4cpio</strong></td>
875<td align=center><tt>sv4cpio</tt></td>
876<td>SV4Cpio file</td></tr>
877<tr valign="top">
878<td align=left><strong>application/x-sv4crc</strong></td>
879<td align=center><tt>sv4crc</tt></td>
880<td>SV4Crc file</td></tr>
881<tr valign="top">
882<td align=left><strong>application/x-tar</strong></td>
883<td align=center><tt>tar</tt></td>
884<td>Unix tar archive</td></tr>
885<tr valign="top">
886<td align=left><strong>application/x-tcl</strong></td>
887<td align=center><tt>tcl</tt></td>
888<td>Tcl script</td></tr>
889<tr valign="top">
890<td align=left><strong>application/x-tex</strong></td>
891<td align=center><tt>tex</tt></td>
892<td>TeX document</td></tr>
893<tr valign="top">
894<td align=left><strong>application/x-texinfo</strong></td>
895<td align=center><tt>texinfo</tt></td>
896<td>TeXInfo document</td></tr>
897<tr valign="top">
898<td align=left><strong>application/x-timbuktu</strong></td>
899<td align=center><tt>tbp</tt></td>
900<td>timbuktu file</td></tr>
901<tr valign="top">
902<td align=left><strong>application/x-tkined</strong></td>
903<td align=center><tt>tki</tt></td>
904<td>tkined file</td></tr>
905<tr valign="top">
906<td align=left><strong>application/x-troff</strong></td>
907<td align=center><tt>roff</tt></td>
908<td>Troff document</td></tr>
909<tr valign="top">
910<td align=left><strong>application/x-troff-man</strong></td>
911<td align=center><tt>man</tt></td>
912<td>Unix manual page</td></tr>
913<tr valign="top">
914<td align=left><strong>application/x-troff-me</strong></td>
915<td align=center><tt>me</tt></td>
916<td>Troff ME-macros document</td></tr>
917<tr valign="top">
918<td align=left><strong>application/x-troff-ms</strong></td>
919<td align=center><tt>ms</tt></td>
920<td>Troff MS-macros document</td></tr>
921<tr valign="top">
922<td align=left><strong>application/x-ustar</strong></td>
923<td align=center><tt>ustar</tt></td>
924<td>UStar file</td></tr>
925<tr valign="top">
926<td align=left><strong>application/x-wais-source</strong></td>
927<td align=center><tt>src</tt></td>
928<td>WAIS Source</td></tr>
929<tr valign="top">
930<td align=left><strong>application/x-zip-compressed</strong></td>
931<td align=center><tt>zip</tt></td>
932<td>Zip compressed data</td></tr>
933<tr valign="top">
934<td align=left><strong>application/zip</strong></td>
935<td align=center><tt>zip</tt></td>
936<td>Zip archive</td></tr>
937<tr valign="top">
938<td align=left><strong>audio/basic</strong></td>
939<td align=center><tt>snd</tt></td>
940<td>Basic audio</td></tr>
941<tr valign="top">
942<td align=left><strong>audio/echospeech</strong></td>
943<td align=center><tt>es</tt></td>
944<td>Echospeech audio</td></tr>
945<tr valign="top">
946<td align=left><strong>audio/microsoft-wav</strong></td>
947<td align=center><tt>wav</tt></td>
948<td>Wave audio</td></tr>
949<tr valign="top">
950<td align=left><strong>audio/midi</strong></td>
951<td align=center><tt>midi</tt></td>
952<td>MIDI audio</td></tr>
953<tr valign="top">
954<td align=left><strong>audio/wav</strong></td>
955<td align=center><tt>wav</tt></td>
956<td>Wave audio</td></tr>
957<tr valign="top">
958<td align=left><strong>audio/x-aiff</strong></td>
959<td align=center><tt>aif</tt></td>
960<td>AIF audio</td></tr>
961<tr valign="top">
962<td align=left><strong>audio/x-epac</strong></td>
963<td align=center><tt>pae</tt></td>
964<td>epac audio</td></tr>
965<tr valign="top">
966<td align=left><strong>audio/x-midi</strong></td>
967<td align=center><tt>midi</tt></td>
968<td>MIDI audio</td></tr>
969<tr valign="top">
970<td align=left><strong>audio/x-mpeg</strong></td>
971<td align=center><tt>mp2</tt></td>
972<td>MPEG audio</td></tr>
973<tr valign="top">
974<td align=left><strong>audio/x-pac</strong></td>
975<td align=center><tt>pac</tt></td>
976<td>pac audio</td></tr>
977<tr valign="top">
978<td align=left><strong>audio/x-pn-realaudio</strong></td>
979<td align=center><tt>ra</tt></td>
980<td>PN Realaudio</td></tr>
981<tr valign="top">
982<td align=left><strong>audio/x-wav</strong></td>
983<td align=center><tt>wav</tt></td>
984<td>Wave audio</td></tr>
985<tr valign="top">
986<td align=left><strong>chemical/chem3d</strong></td>
987<td align=center><tt>c3d</tt></td>
988<td>Chem3d chemical test</td></tr>
989<tr valign="top">
990<td align=left><strong>chemical/chemdraw</strong></td>
991<td align=center><tt>chm</tt></td>
992<td>Chemdraw chemical test</td></tr>
993<tr valign="top">
994<td align=left><strong>chemical/cif</strong></td>
995<td align=center><tt>cif</tt></td>
996<td>CIF chemical test</td></tr>
997<tr valign="top">
998<td align=left><strong>chemical/cml</strong></td>
999<td align=center><tt>cml</tt></td>
1000<td>CML chemical test</td></tr>
1001<tr valign="top">
1002<td align=left><strong>chemical/cmsl</strong></td>
1003<td align=center><tt>cml</tt></td>
1004<td>Chemical Structure Markup</td></tr>
1005<tr valign="top">
1006<td align=left><strong>chemical/cxf</strong></td>
1007<td align=center><tt>cxf</tt></td>
1008<td>Chemical Exhange Format file</td></tr>
1009<tr valign="top">
1010<td align=left><strong>chemical/daylight-smiles</strong></td>
1011<td align=center><tt>smi</tt></td>
1012<td>SMILES format file</td></tr>
1013<tr valign="top">
1014<td align=left><strong>chemical/embl-dl-nucleotide</strong></td>
1015<td align=center><tt>emb</tt></td>
1016<td>EMBL nucleotide format file</td></tr>
1017<tr valign="top">
1018<td align=left><strong>chemical/gaussian</strong></td>
1019<td align=center><tt>gau</tt></td>
1020<td>Gaussian data</td></tr>
1021<tr valign="top">
1022<td align=left><strong>chemical/gaussian-input</strong></td>
1023<td align=center><tt>gau</tt></td>
1024<td>Gaussian input data</td></tr>
1025<tr valign="top">
1026<td align=left><strong>chemical/gaussian-log</strong></td>
1027<td align=center><tt>gal</tt></td>
1028<td>Gaussian log</td></tr>
1029<tr valign="top">
1030<td align=left><strong>chemical/gcg8-sequence</strong></td>
1031<td align=center><tt>gcg</tt></td>
1032<td>GCG format file</td></tr>
1033<tr valign="top">
1034<td align=left><strong>chemical/genbank</strong></td>
1035<td align=center><tt>gen</tt></td>
1036<td>GENbank data</td></tr>
1037<tr valign="top">
1038<td align=left><strong>chemical/jcamp-dx</strong></td>
1039<td align=center><tt>jdx</tt></td>
1040<td>Jcamp chemical spectra test</td></tr>
1041<tr valign="top">
1042<td align=left><strong>chemical/kinemage</strong></td>
1043<td align=center><tt>kin</tt></td>
1044<td>Kinemage</td></tr>
1045<tr valign="top">
1046<td align=left><strong>chemical/macromodel-input</strong></td>
1047<td align=center><tt>mmd</tt></td>
1048<td>Macromodel chemical test</td></tr>
1049<tr valign="top">
1050<td align=left><strong>chemical/mdl-molfile</strong></td>
1051<td align=center><tt>mol</tt></td>
1052<td>MOL mdl chemical test</td></tr>
1053<tr valign="top">
1054<td align=left><strong>chemical/mdl-rdf</strong></td>
1055<td align=center><tt>rdf</tt></td>
1056<td>RDF chemical test</td></tr>
1057<tr valign="top">
1058<td align=left><strong>chemical/mdl-rxn</strong></td>
1059<td align=center><tt>rxn</tt></td>
1060<td>RXN chemical test</td></tr>
1061<tr valign="top">
1062<td align=left><strong>chemical/mdl-sdf</strong></td>
1063<td align=center><tt>sdf</tt></td>
1064<td>SDF chemical test</td></tr>
1065<tr valign="top">
1066<td align=left><strong>chemical/mdl-tgf</strong></td>
1067<td align=center><tt>tgf</tt></td>
1068<td>TGF chemical test</td></tr>
1069<tr valign="top">
1070<td align=left><strong>chemical/mif</strong></td>
1071<td align=center><tt>mif</tt></td>
1072<td>MIF chemical test</td></tr>
1073<tr valign="top">
1074<td align=left><strong>chemical/mmd</strong></td>
1075<td align=center><tt>mmd</tt></td>
1076<td>Macromodel data</td></tr>
1077<tr valign="top">
1078<td align=left><strong>chemical/mopac-input</strong></td>
1079<td align=center><tt>mop</tt></td>
1080<td>MOPAC data </td></tr>
1081<tr valign="top">
1082<td align=left><strong>chemical/ncbi-asn1</strong></td>
1083<td align=center><tt>asn</tt></td>
1084<td>NCBI data</td></tr>
1085<tr valign="top">
1086<td align=left><strong>chemical/pdb</strong></td>
1087<td align=center><tt>pdb</tt></td>
1088<td>Protein Databank data</td></tr>
1089<tr valign="top">
1090<td align=left><strong>chemical/rosdal</strong></td>
1091<td align=center><tt>ros</tt></td>
1092<td>Rosdal data</td></tr>
1093<tr valign="top">
1094<td align=left><strong>chemical/xyz</strong></td>
1095<td align=center><tt>xyz</tt></td>
1096<td>Xmol XYZ data</td></tr>
1097<tr valign="top">
1098<td align=left><strong>image/bmp</strong></td>
1099<td align=center><tt>bmp</tt></td>
1100<td>Windows bitmap</td></tr>
1101<tr valign="top">
1102<td align=left><strong>image/cgm</strong></td>
1103<td align=center><tt>cgm</tt></td>
1104<td>Computer Graphics Metafile</td></tr>
1105<tr valign="top">
1106<td align=left><strong>image/fif</strong></td>
1107<td align=center><tt>fif</tt></td>
1108<td>Fractal Image Format image</td></tr>
1109<tr valign="top">
1110<td align=left><strong>image/g3fax</strong></td>
1111<td align=center><tt>g3f</tt></td>
1112<td>Group III FAX image</td></tr>
1113<tr valign="top">
1114<td align=left><strong>image/gif</strong></td>
1115<td align=center><tt>gif</tt></td>
1116<td>GIF image</td></tr>
1117<tr valign="top">
1118<td align=left><strong>image/ief</strong></td>
1119<td align=center><tt>ief</tt></td>
1120<td>IEF image</td></tr>
1121<tr valign="top">
1122<td align=left><strong>image/ifs</strong></td>
1123<td align=center><tt>ifs</tt></td>
1124<td>IFS image</td></tr>
1125<tr valign="top">
1126<td align=left><strong>image/jpeg</strong></td>
1127<td align=center><tt>jpg</tt></td>
1128<td>JPEG image</td></tr>
1129<tr valign="top">
1130<td align=left><strong>image/pbm</strong></td>
1131<td align=center><tt>pbm</tt></td>
1132<td>Portable bitmap</td></tr>
1133<tr valign="top">
1134<td align=left><strong>image/pgm</strong></td>
1135<td align=center><tt>pgm</tt></td>
1136<td>Portable graymap</td></tr>
1137<tr valign="top">
1138<td align=left><strong>image/png</strong></td>
1139<td align=center><tt>png</tt></td>
1140<td>PNG image</td></tr>
1141<tr valign="top">
1142<td align=left><strong>image/tiff</strong></td>
1143<td align=center><tt>tif</tt></td>
1144<td>TIFF image</td></tr>
1145<tr valign="top">
1146<td align=left><strong>image/vnd</strong></td>
1147<td align=center><tt>dwg</tt></td>
1148<td>VND image</td></tr>
1149<tr valign="top">
1150<td align=left><strong>image/wavelet</strong></td>
1151<td align=center><tt>wi</tt></td>
1152<td>Wavelet image</td></tr>
1153<tr valign="top">
1154<td align=left><strong>image/x-cmu-raster</strong></td>
1155<td align=center><tt>ras</tt></td>
1156<td>CMU raster</td></tr>
1157<tr valign="top">
1158<td align=left><strong>image/x-pbm</strong></td>
1159<td align=center><tt>pbm</tt></td>
1160<td>Portable bitmap</td></tr>
1161<tr valign="top">
1162<td align=left><strong>image/x-pcx</strong></td>
1163<td align=center><tt>pcx</tt></td>
1164<td>PCX image</td></tr>
1165<tr valign="top">
1166<td align=left><strong>image/x-pgm</strong></td>
1167<td align=center><tt>pgm</tt></td>
1168<td>Portable graymap</td></tr>
1169<tr valign="top">
1170<td align=left><strong>image/x-pict</strong></td>
1171<td align=center><tt>pict</tt></td>
1172<td>Mac PICT image</td></tr>
1173<tr valign="top">
1174<td align=left><strong>image/x-pnm</strong></td>
1175<td align=center><tt>pnm</tt></td>
1176<td>Portable anymap</td></tr>
1177<tr valign="top">
1178<td align=left><strong>image/x-portable-anymap</strong></td>
1179<td align=center><tt>pnm</tt></td>
1180<td>Portable anymap</td></tr>
1181<tr valign="top">
1182<td align=left><strong>image/x-portable-bitmap</strong></td>
1183<td align=center><tt>pbm</tt></td>
1184<td>Portable bitmap</td></tr>
1185<tr valign="top">
1186<td align=left><strong>image/x-portable-graymap</strong></td>
1187<td align=center><tt>pgm</tt></td>
1188<td>Portable graymap</td></tr>
1189<tr valign="top">
1190<td align=left><strong>image/x-portable-pixmap</strong></td>
1191<td align=center><tt>ppm</tt></td>
1192<td>Portable pixmap</td></tr>
1193<tr valign="top">
1194<td align=left><strong>image/x-ppm</strong></td>
1195<td align=center><tt>ppm</tt></td>
1196<td>Portable pixmap</td></tr>
1197<tr valign="top">
1198<td align=left><strong>image/x-rgb</strong></td>
1199<td align=center><tt>rgb</tt></td>
1200<td>RGB image</td></tr>
1201<tr valign="top">
1202<td align=left><strong>image/x-xbitmap</strong></td>
1203<td align=center><tt>xbm</tt></td>
1204<td>X bitmap</td></tr>
1205<tr valign="top">
1206<td align=left><strong>image/x-xbm</strong></td>
1207<td align=center><tt>xbm</tt></td>
1208<td>X bitmap</td></tr>
1209<tr valign="top">
1210<td align=left><strong>image/x-xpixmap</strong></td>
1211<td align=center><tt>xpm</tt></td>
1212<td>X pixmap</td></tr>
1213<tr valign="top">
1214<td align=left><strong>image/x-xpm</strong></td>
1215<td align=center><tt>xpm</tt></td>
1216<td>X pixmap</td></tr>
1217<tr valign="top">
1218<td align=left><strong>image/x-xwd</strong></td>
1219<td align=center><tt>xwd</tt></td>
1220<td>X window dump</td></tr>
1221<tr valign="top">
1222<td align=left><strong>image/x-xwindowdump</strong></td>
1223<td align=center><tt>xwd</tt></td>
1224<td>X window dump</td></tr>
1225<tr valign="top">
1226<td align=left><strong>message/news</strong></td>
1227<td align=center><tt>822</tt></td>
1228<td>News post</td></tr>
1229<tr valign="top">
1230<td align=left><strong>message/rfc822</strong></td>
1231<td align=center><tt>822</tt></td>
1232<td>Mail message</td></tr>
1233<tr valign="top">
1234<td align=left><strong>model/iges</strong></td>
1235<td align=center><tt>iges</tt></td>
1236<td>IGES model</td></tr>
1237<tr valign="top">
1238<td align=left><strong>model/mesh</strong></td>
1239<td align=center><tt>mesh</tt></td>
1240<td>Mesh model</td></tr>
1241<tr valign="top">
1242<td align=left><strong>model/vrml</strong></td>
1243<td align=center><tt>wrl</tt></td>
1244<td>VRML model</td></tr>
1245<tr valign="top">
1246<td align=left><strong>text/enriched</strong></td>
1247<td align=center><tt>rtx</tt></td>
1248<td>Text-enriched document</td></tr>
1249<tr valign="top">
1250<td align=left><strong>text/html</strong></td>
1251<td align=center><tt>html</tt></td>
1252<td>HTML document</td></tr>
1253<tr valign="top">
1254<td align=left><strong>text/plain</strong></td>
1255<td align=center><tt>txt</tt></td>
1256<td>Text document</td></tr>
1257<tr valign="top">
1258<td align=left><strong>text/richtext</strong></td>
1259<td align=center><tt>rtx</tt></td>
1260<td>Richtext document</td></tr>
1261<tr valign="top">
1262<td align=left><strong>text/setext</strong></td>
1263<td align=center><tt>stx</tt></td>
1264<td>Setext document</td></tr>
1265<tr valign="top">
1266<td align=left><strong>text/sgml</strong></td>
1267<td align=center><tt>sgml</tt></td>
1268<td>SGML document</td></tr>
1269<tr valign="top">
1270<td align=left><strong>text/tab-separated-values</strong></td>
1271<td align=center><tt>tsv</tt></td>
1272<td>Tab separated values</td></tr>
1273<tr valign="top">
1274<td align=left><strong>text/x-speech</strong></td>
1275<td align=center><tt>talk</tt></td>
1276<td>Speech document</td></tr>
1277<tr valign="top">
1278<td align=left><strong>video/isivideo</strong></td>
1279<td align=center><tt>fvi</tt></td>
1280<td>isi video</td></tr>
1281<tr valign="top">
1282<td align=left><strong>video/mpeg</strong></td>
1283<td align=center><tt>mpg</tt></td>
1284<td>MPEG movie</td></tr>
1285<tr valign="top">
1286<td align=left><strong>video/msvideo</strong></td>
1287<td align=center><tt>avi</tt></td>
1288<td>MS Video</td></tr>
1289<tr valign="top">
1290<td align=left><strong>video/quicktime</strong></td>
1291<td align=center><tt>mov</tt></td>
1292<td>QuickTime movie</td></tr>
1293<tr valign="top">
1294<td align=left><strong>video/vivo</strong></td>
1295<td align=center><tt>viv</tt></td>
1296<td>vivo video</td></tr>
1297<tr valign="top">
1298<td align=left><strong>video/wavelet</strong></td>
1299<td align=center><tt>wv</tt></td>
1300<td>Wavelet video</td></tr>
1301<tr valign="top">
1302<td align=left><strong>video/x-sgi-movie</strong></td>
1303<td align=center><tt>movie</tt></td>
1304<td>SGI movie</td></tr>
1305</table>
1306<!--X-Ext-CType-End-->
1307</center>
1308
1309<hr size=0 noshade width="50%">
1310<H3><a name="m2h_msg_extbody">m2h_msg_extbody::filter</a></h3>
1311
1312<p>This filter is designed to process <tt>message/external-body</tt>
1313data.
1314The filter attempts to translate the external-body paramaters
1315into a linked URL with some descriptive information,
1316if provided. The following access-types are supported:
1317ANON-FTP, FTP, TFTP, LOCAL-FILE, and URL. Note, LOCAL-FILE is
1318only supported if the <tt>local-file</tt> option is specified.
1319</p>
1320
1321<p><strong><tt>m2h_msg_extbody::filter</tt></strong> can take the
1322following
1323<a href="mimeargs.html">arguments</a>:
1324</p>
1325
1326<table cellspacing=1 border=0 cellpadding=4>
1327<tr valign=top>
1328<td><strong><tt>local-file</tt></strong></td>
1329<td><p>Support LOCAL-FILE access-type. This option
1330is best used for internal local mail archives
1331where it is known that readers will have
1332direct access to the file.
1333</p>
1334</tr>
1335</table>
1336
1337
1338<hr size=0 noshade width="50%">
1339<H3><a name="m2h_text_enriched">m2h_text_enriched::filter</a></h3>
1340
1341<p>This filter is designed to process text/enriched, or
1342text/richtext, data. The following table summarizes the
1343translation of text/enriched commands to HTML tags:
1344</p>
1345
1346<center>
1347<table border=1 cellpadding=2>
1348<tr valign=top align=left bgcolor="#C0C0C0">
1349<th>Text/Enriched Command</th><th>HTML Translation</th>
1350</tr>
1351<tr valign=top>
1352<td><strong>&lt;Bold&gt;</strong></td>
1353<td>&lt;B&gt;</td>
1354</tr>
1355<tr valign=top>
1356<td><strong>&lt;Italic&gt;</strong></td>
1357<td>&lt;I&gt;</td>
1358</tr>
1359<tr valign=top>
1360<td><strong>&lt;Underline&gt;</strong></td>
1361<td>&lt;U&gt;</td>
1362</tr>
1363<tr valign=top>
1364<td><strong>&lt;Fixed&gt;</strong></td>
1365<td>&lt;TT&gt;</td>
1366</tr>
1367<tr valign=top>
1368<td><strong>&lt;Smaller&gt;</strong></td>
1369<td>&lt;SMALL&gt;</td>
1370</tr>
1371<tr valign=top>
1372<td><strong>&lt;Bigger&gt;</strong></td>
1373<td>&lt;BIG&gt;</td>
1374</tr>
1375<tr valign=top>
1376<td><strong>&lt;FontFamily&gt;&lt;Param&gt;<var>family</var>&lt;/Param&gt;</strong></td>
1377<td>&lt;FONT face="<var>family</var>"&gt;</td>
1378</tr>
1379<tr valign=top>
1380<td><strong>&lt;Color&gt;&lt;Param&gt;<var>color</var>&lt;/Param&gt;</strong></td>
1381<td>&lt;FONT color="<var>color</var>"&gt;</td>
1382</tr>
1383<tr valign=top>
1384<td><strong>&lt;Center></strong></td>
1385<td>&lt;P align="center"&gt;</td>
1386</tr>
1387<tr valign=top>
1388<td><strong>&lt;FlushLeft&gt;</strong></td>
1389<td>&lt;P align="left"&gt;</td>
1390</tr>
1391<tr valign=top>
1392<td><strong>&lt;FlushRight&gt;</strong></td>
1393<td>&lt;P align="right"&gt;</td>
1394</tr>
1395<tr valign=top>
1396<td><strong>&lt;FlushBoth&gt;</strong></td>
1397<td>&lt;P align="both"&gt; <em>(not supported in HTML)</em></td>
1398</tr>
1399<tr valign=top>
1400<td><strong>&lt;ParaIndent&gt;</strong></td>
1401<td>&lt;BLOCKQUOTE&gt;</td>
1402</tr>
1403<tr valign=top>
1404<td><strong>&lt;Excerpt&gt;</strong></td>
1405<td>&lt;BLOCKQUOTE&gt;</td>
1406</tr>
1407<tr valign=top>
1408<td><strong>&lt;Lang&gt;</strong></td>
1409<td><em>Stripped</em></td>
1410</tr>
1411</table>
1412</center>
1413
1414<p>If the text/enriched contains non-ASCII character, the filter will
1415convert the characters to the appropriate entity references.
1416</p>
1417
1418<table border=0 cellpadding=4>
1419<tr valign=top>
1420<td><strong>NOTE</strong></td>
1421<td><p>Only the ISO-8859-[1-10] character sets are recognized.
1422</p>
1423</td>
1424</tr>
1425</table>
1426
1427<hr size=0 noshade width="50%">
1428<H3><a name="m2h_text_html">m2h_text_html::filter</a></h3>
1429
1430<table border=0 cellpadding=4>
1431<tr valign=top>
1432<td><strong><font color="red">CAUTION</font></strong></td>
1433<td><p>
1434If you are worried about security, it is recommended that you disable
1435support of text/html messages in your mail archives. There is no
1436guarantee that this filter is robust enough to eliminate all possible
1437exploits that can occur with HTML data.
1438</p>
1439</td>
1440</tr>
1441</table>
1442
1443<p>This filter is designed to process <tt>text/html</tt>, or
1444<tt>text/x-html</tt>, data.
1445The filter modifies HTML documents so they can be
1446included into the message pages without causing invalid markup
1447to occur. The following modification are done to HTML documents when
1448processed by MHonArc:
1449</p>
1450<ul>
1451<li><p>The HEAD element is removed. Since some elements within the HEAD
1452element may be relevant to the rest of the document, the following is
1453done when removing the HEAD element:</p>
1454 <ul>
1455 <li>The title will be extracted and prepended
1456 to the body data.</li>
1457 <li>Any BASE URL will be propogated to any relative URLs in the
1458 document.</li>
1459 </ul>
1460 <p></p>
1461</li>
1462<li><p>Any markup related to scripting is removed for security
1463reasons. The following tags are removed:
1464<tt>&lt;applet&gt;</tt>,
1465<tt>&lt;base&gt;</tt>,
1466<tt>&lt;embed&gt;</tt>,
1467<tt>&lt;form&gt;</tt>,
1468<tt>&lt;ilayer&gt;</tt>,
1469<tt>&lt;input&gt;</tt>,
1470<tt>&lt;layer&gt;</tt>,
1471<tt>&lt;link&gt;</tt>,
1472<tt>&lt;meta&gt;</tt>,
1473<tt>&lt;object&gt;</tt>,
1474<tt>&lt;option&gt;</tt>,
1475<tt>&lt;param&gt;</tt>,
1476<tt>&lt;script&gt;</tt>,
1477<tt>&lt;select&gt;</tt>,
1478<tt>&lt;style&gt;</tt>,
1479<tt>&lt;textarea&gt;</tt>.
1480The following attributes are removed:
1481<tt>onload</tt>,
1482<tt>onunload</tt>,
1483<tt>onclick</tt>,
1484<tt>ondblclick</tt>,
1485<tt>onmousedown</tt>,
1486<tt>onmouseup</tt>,
1487<tt>onmouseover</tt>,
1488<tt>onmousemove</tt>,
1489<tt>onmouseout</tt>,
1490<tt>onkeypress</tt>,
1491<tt>onkeydown</tt>,
1492<tt>onkeyup</tt>.
1493The <strong><tt>allowscript</tt></strong> option can be
1494be used to override this behavior (see below).
1495</p></li>
1496<li><p><b><tt>cid:</tt></b> URLs are resolved, if possible. Therefore,
1497if image data related to the HTML document is included with the message,
1498the URLs will be modified to the filenames of the images that were
1499decoded.</p>
1500</li>
1501</ul>
1502
1503<p><strong><tt>m2h_text_html::filter</tt></strong> can take the
1504following
1505<a href="mimeargs.html">arguments</a>:
1506</p>
1507
1508<table cellspacing=1 border=0 cellpadding=4>
1509<tr valign=top>
1510<td><strong><tt>allowcomments</tt></strong></td>
1511<td><p>Preserve any comment declarations. Comment declarations
1512are sometimes used to contain executable commands, like for
1513server-side includes. Normally, comment declarations are munged
1514to protect against potential exploits, but this option will
1515disable that behavior. Use this options with <strong>EXTREME</strong>
1516care.
1517</p></td>
1518</tr>
1519<tr valign=top>
1520<td><strong><tt>allownoncidurls</tt></strong></td>
1521<td><p>Preserve URL-based attributes that are not cid: URLs.
1522Normally, any URL-based attribute -- <tt>href</tt>, <tt>src</tt>,
1523<tt>background</tt>, <tt>classid</tt>, <tt>data</tt>, <tt>longdesc</tt>
1524-- will be stripped if it is not a cid: URL. This is to prevent
1525malicious URLs that verify mail addresses for spam purposes, secretly
1526set cookies, or gather some statistical data automatically with the
1527use of elements that cause browsers to automatically fetch data:
1528<tt>IMG</tt>, <tt>BODY</tt>, <tt>IFRAME</tt>, <tt>FRAME</tt>,
1529<tt>OBJECT</tt>, <tt>SCRIPT</tt>, <tt>INPUT</tt>.
1530</p></td>
1531</tr>
1532<tr valign=top>
1533<td><strong><tt>allowscript</tt></strong></td>
1534<td><p>Preserve any markup associated with scripting.
1535This includes elements and attributes related to scripting. This option
1536can cause security problems for your archive since someone can introduce
1537foreign client-side code. Use this options with <strong>EXTREME</strong>
1538care.
1539</p></td>
1540</tr>
1541<tr valign=top>
1542<td><strong><tt>attachcheck</tt></strong></td>
1543<td><p>Honor attachment disposition. By default,
1544all text/html data is displayed inline on
1545the message page. If <tt>attachcheck</tt> is specified
1546and Content-Disposition specifies the data as
1547an attachment, the data is saved to a file
1548with a link to it from the message page.
1549</p>
1550<p><b>CAUTION:</b> If <tt>attachcheck</tt> is specified, the HTML
1551data is saved "as-is". For example, no stripping of scripting-based
1552markup is performed and no resolution of cid URLs are performed.
1553</p>
1554</tr>
1555<tr valign=top>
1556<td><strong><tt>nofont</tt></strong></td>
1557<td><p>Remove font tags.
1558</p></td>
1559</tr>
1560<tr valign=top>
1561<td><strong><tt>notitle</tt></strong></td>
1562<td><p>Do not print extracted title at the beginning of converted
1563output. Since this filter strips out HEAD markup so the document
1564can be included into the message page, this filter will extract
1565the title and print the title of the document before the document
1566body. The <tt>notitle</tt> argument disables this behavior.
1567</p></td>
1568</table>
1569
1570<hr size=0 noshade width="50%">
1571<H3><a name="m2h_text_plain">m2h_text_plain::filter</a></h3>
1572
1573<p>This filter is designed to process text/plain messages and
1574messages with no MIME information. The
1575filter is also used to process text messages of an unknown
1576subtype.
1577</p>
1578
1579<p>The default behavior of the filter is wrap the data in
1580the HTML PRE element and escape special characters. It will
1581also convert text that looks like a URL into a hyperlink.
1582If the data contains non-ASCII character, the filter will
1583convert the characters to the appropriate entity reference.
1584</p>
1585
1586<table border=0 cellpadding=4>
1587<tr valign=top>
1588<td><strong>NOTE</strong></td>
1589<td><p>The functions registered via the
1590<a href="charsetconverters.html">CHARSETCONVERTERS</a> are used
1591to handle character set processing.
1592</p>
1593</td>
1594</tr>
1595</table>
1596
1597<p><strong><tt>m2h_text_plain::filter</tt></strong> can take the
1598following
1599<a href="mimeargs.html">arguments</a>:
1600</p>
1601
1602<table cellspacing=1 border=0 cellpadding=4>
1603
1604<tr valign=top>
1605<td><strong><tt>asis=</tt></strong><var>set1</var><tt>:</tt>...</td>
1606<td><p>Colon separated lists of charsets to leave as-is.
1607Only HTML special characters will be converted into entities.
1608The default is "<tt>us-ascii:iso-8859-1</tt>".
1609</p>
1610</tr>
1611<tr valign=top>
1612<td><strong><tt>attachcheck</tt></strong></td>
1613<td><p>Honor attachment disposition. By default,
1614all text/plain data is displayed inline on
1615the message page. If <tt>attachcheck</tt> is specified
1616and Content-Disposition specifies the data as
1617an attachment, the data is saved to a file
1618with a link to it from the message page.
1619</p>
1620</tr>
1621<tr valign=top>
1622<td><strong><tt>default=</tt></strong><var>charset</var></td>
1623<td><p>Character set to use as the default if no character set
1624is defined for the message. If option not specified,
1625"<tt>us-ascii</tt>" is used.
1626</p>
1627</tr>
1628<tr valign=top>
1629<td><strong><tt>inlineexts=</tt></strong><var>ext1</var><tt>,</tt>...</td>
1630<td><p>A comma separated list of message specified filename
1631extensions to treat as inline data.
1632Applicable only when <b><tt>uudecode</tt></b> is specified.
1633</p>
1634</tr>
1635<tr valign=top>
1636<td><strong><tt>htmlcheck</tt></strong></td>
1637<td><p>Check if message is actually an HTML message
1638(to get around abhorrent MUAs). The message
1639is treated as HTML if the first non-whitespace
1640data looks like the start of an HTML document.
1641</p>
1642</tr>
1643<tr valign=top>
1644<td><strong><tt>keepspace</tt></strong></td>
1645<td><p>Preserve all spaces if the <strong><tt>nonfixed</tt></strong>
1646option is specified. All spaces and tabs will be translated to the
1647equivalent number of <strong>&amp;nbsp;</strong> entity references.
1648</p>
1649</tr>
1650<tr valign=top>
1651<td><strong><tt>maxwidth=</tt></strong><var>#</var></td>
1652<td><p>Force the maximum width of lines to be <var>#</var> characters
1653in length. Any lines longer than <var>#</var> characters will be
1654wrapped.
1655</p>
1656</tr>
1657<tr valign=top>
1658<td><strong><tt>nonfixed</tt></strong></td>
1659<td><p>Do not wrap message text in the HTML PRE element. This will
1660cause text to be rendered in the default font (which is normally
1661proportionally spaced). Each line of the message will have
1662a <tt>&lt;BR&gt;</tt> appended in order to preserve the line representation
1663of the message.
1664</p>
1665</tr>
1666<tr valign=top>
1667<td><strong><tt>nourl</tt></strong></td>
1668<td><p>Do not hyperlink URLs.
1669</p>
1670</tr>
1671<tr valign=top>
1672<td><strong><tt>quote</tt></strong></td>
1673<td><p>Italicize quoted message text.
1674</p>
1675</tr>
1676<tr valign=top>
1677<td><strong><tt>target=</tt></strong><var>name</var></td>
1678<td><p>Set the TARGET attribute of an anchor links generated from
1679hyperlinking URLs.
1680</p>
1681</tr>
1682<tr valign=top>
1683<td><strong><tt>usename</tt></strong></td>
1684<td><p>When decoding uuencoded data, use the full filename specified
1685when write the data to disk instead of just the filename extension.
1686<b>Note:</b> Be aware that there are potential security problems when
1687using this option.
1688</p></td>
1689</tr>
1690<tr valign=top>
1691<td><strong><tt>uudecode</tt></strong></td>
1692<td><p>Decode any embedded uuencoded data. Including uuencoded data
1693within messages was a way to trasmit binary data
1694via email before MIME was developed. The inclusion of uuencoded
1695data is deprecated within email, but is still common in the
1696USENET (binary) newsgroups. Note, specifying <b><tt>uudecode</tt></b>
1697adds extra
1698overhead in the processing of text messages, including messages without
1699any uuencoded data.
1700</p>
1701<p>Uuencoded data is treated as <tt>application/octet-stream</tt>
1702data for purposes of checking if the data should be excluded when
1703checked against the <a href="mimeexcs.html">MIMEEXCS</a> resource.
1704Therefore, if <tt>application/octet-stream</tt> data is listed
1705in MIMEEXCS, uuencoded data will be excluded.
1706</p></td>
1707</tr>
1708
1709</table>
1710
1711<p>All arguments should be separated by at least one space.</p>
1712
1713<hr size=0 noshade width="50%">
1714<H3><a name="m2h_text_setext">m2h_text_setext::filter</a></h3>
1715
1716<p>This filter converts text/setext and text/x-setext messages
1717to HTML.
1718</p>
1719
1720<hr size=0 noshade width="50%">
1721<H3><a name="m2h_text_tsv">m2h_text_tsv::filter</a></h3>
1722
1723<p>This filter converts text/tab-separated-values to HTML. The
1724tabular data will be converted into an HTML table.
1725</p>
1726
1727<hr size=0 noshade width="50%">
1728<H3><a name="m2h_null">m2h_null::filter</a></h3>
1729
1730<p>This filter can be used to exclude message content from archives.
1731You can register this filter to any content-type you do not want
1732to store in your archives. For example, the following resource setting
1733excludes all images:
1734</p>
1735<pre>
1736<b>&lt;MIMEFilters&gt;</b>
1737image/*; m2h_null::filter</a>; mhnull.pl
1738<b>&lt;/MIMEFilters&gt;</b>
1739</pre>
1740<p>The markup returned by this filter displays the a one line description
1741of what was excluded. Examples:
1742</p>
1743<pre>
1744&lt;&lt;attachment: HelloWorld.jpg&gt;&gt;
1745&lt;&lt;application/postscript&gt;&gt;
1746&lt;&lt;inline: image/jpg&gt;&gt;
1747</pre>
1748<p>If the disposition is available, it will be shown. If a filename
1749was specified, it will be shown. If there was no filename, the
1750content-type is shown.
1751</p>
1752
1753<!-- *************************************************************** -->
1754<hr>
1755<h2>Resource Variables</h2>
1756
1757<p>N/A
1758</p>
1759
1760<!-- *************************************************************** -->
1761<hr>
1762<h2>Examples</h2>
1763
1764<p>The following code is an example filter for converting
1765<tt>text/tab-separated-values</tt> into an HTML table:
1766</p>
1767<pre>
1768package m2h_text_tsv;
1769
1770sub filter {
1771 my($fields, $data, $isdecode, $args) = @_;
1772 my($field, $line, $ret);
1773 local($_);
1774
1775 $$data =~ s/^\s+//;
1776 $ret = "&lt;table border=1&gt;\n";
1777 foreach $line (split(/\r?\n/, $$data)) {
1778 $ret .= "&lt;tr&gt;";
1779 foreach $field (split(/\t/, $line)) {
1780 $ret .= "&lt;td&gt;$field&lt;/td&gt;";
1781 }
1782 $ret .= "&lt;/tr&gt;\n";
1783 }
1784 $ret .= "&lt;/table&gt;\n";
1785 ($ret);
1786}
1787
17881;
1789</pre>
1790
1791<!-- *************************************************************** -->
1792<hr>
1793<h2>Version</h2>
1794
1795<p>1.0
1796</p>
1797
1798<!-- *************************************************************** -->
1799<hr>
1800<h2>See Also</h2>
1801
1802<p>
1803<a href="charsetconverters.html">CHARSETCONVERTERS</a>,
1804<a href="mimeargs.html">MIMEARGS</a>,
1805<a href="mimedecoders.html">MIMEDECODERS</a>,
1806<a href="mimeexcs.html">MIMEEXCS</a>,
1807<a href="perlinc.html">PERLINC</a>
1808</p>
1809
1810<!-- *************************************************************** -->
1811<hr>
1812<!--x-rc-nav-->
1813<table border=0><tr valign="top">
1814<td align="left" width="50%">[Prev:&nbsp;<a href="mimeexcs.html">MIMEEXCS</a>]</td><td><nobr>[<a href="../resources.html#mimefilters">Resources</a>][<a href="../mhonarc.html">TOC</a>]</nobr></td><td align="right" width="50%">[Next:&nbsp;<a href="modtime.html">MODTIME</a>]</td></tr></table>
1815<!--/x-rc-nav-->
1816<hr>
1817<address>
1818$Date: 2002/10/21 16:55:19 $ <br>
1819<img align="top" src="../monicon.png" alt="">
1820<a href="http://www.mhonarc.org"><strong>MHonArc</strong></a><br>
1821Copyright &#169; 1997-2001 <a href="http://www.mhonarc.org/~ehood/">Earl Hood</a>, <a href="mailto:mhonarc@mhonarc.org">mhonarc@mhonarc.org</a><br>
1822</address>
1823
1824</body>
1825</html>