458 lines
15 KiB
HTML
458 lines
15 KiB
HTML
|
<HTML>
|
||
|
|
||
|
<HEAD>
|
||
|
<META NAME="description" CONTENT="xorriso, creates, loads, manipulates and writes ISO 9660 filesystem images with Rock Ridge extensions">
|
||
|
<META NAME="keywords" CONTENT="xorriso, libburn, libburnia, burn, CD, DVD, ISO, ISO 9660, RockRidge, Rock Ridge, linux, recording, burning, CD-R, CD-RW, DVD-R, DVD-RW, DVD+RW, DVD+R, DVD+R DL, BD-RE, scdbackup">
|
||
|
<META NAME="robots" CONTENT="follow">
|
||
|
<TITLE>xorriso homepage english</TITLE>
|
||
|
</HEAD>
|
||
|
|
||
|
<BODY BGCOLOR="#F5DEB3" TEXT=#000000 LINK=#0000A0 VLINK=#800000>
|
||
|
<FONT SIZE=+1>
|
||
|
|
||
|
<CENTER>
|
||
|
<P><H2> Homepage of </H2>
|
||
|
<H1> xorriso </H1>
|
||
|
|
||
|
<H2>ISO 9660 Rock Ridge Filesystem Manipulator for Linux</H2>
|
||
|
</CENTER>
|
||
|
|
||
|
<P>
|
||
|
<H2>Purpose:</H2>
|
||
|
xorriso maps file objects from POSIX compliant filesystems
|
||
|
into Rock Ridge enhanced ISO 9660 filesystems and allows
|
||
|
session-wise manipulation of such filesystems. It can load the management
|
||
|
information of existing ISO images and it writes the session results to
|
||
|
optical media or to filesystem objects.
|
||
|
</P>
|
||
|
<P>
|
||
|
|
||
|
<HR>
|
||
|
|
||
|
<A HREF="#download">Direct hop to download links -></A>
|
||
|
|
||
|
<P>
|
||
|
<H2>Hardware requirements:</H2>
|
||
|
A CD/DVD/BD recorder suitable for
|
||
|
<A HREF="http://libburnia-project.org">http://libburnia-project.org</A> <BR>
|
||
|
(SCSI , ATA , USB , or SATA writers compliant to standard MMC-3 for CD
|
||
|
and to MMC-5 for DVD or BD).
|
||
|
<BR>
|
||
|
</P>
|
||
|
|
||
|
<P>
|
||
|
<H2>Software requirements :</H2>
|
||
|
<DL>
|
||
|
<DT>Linux with kernel 2.4 or higher (and libc, of course) :</DT>
|
||
|
<DD>With kernel 2.4 an ATA drive has to be under ide-scsi emulation.</DD>
|
||
|
<DD>With kernel 2.6 the drive should not be under ide-scsi.</DD>
|
||
|
<DT>libpthread</DT>
|
||
|
<DD>is supposed to be a standard system component.</DD>
|
||
|
<DT>libreadline and libreadline-dev</DT>
|
||
|
<DD>are optional and eventually make dialog more convenient.</DD>
|
||
|
</DL>
|
||
|
</P>
|
||
|
|
||
|
<P>
|
||
|
<H2>
|
||
|
GPL software included:<BR>
|
||
|
</H2>
|
||
|
<DL>
|
||
|
<DT>libburn-0.4.9</DT>
|
||
|
<DD>reads and writes data from and to CD, DVD, BD-RE.</DD>
|
||
|
<DD>(founded by Derek Foreman and Ben Jansens,
|
||
|
furthered since August 2006 by team of libburnia-project.org)</DD>
|
||
|
<DT>libisofs-0.6.4</DT>
|
||
|
<DD>operates ISO 9660 images.</DD>
|
||
|
<DD>(By Vreixo Formoso and Mario Danic from team of libburnia-project.org)</DD>
|
||
|
<DT>libisoburn-0.1.6</DT>
|
||
|
<DD>coordinates libburn and libisofs, emulates multi-session where needed.</DD>
|
||
|
<DD>(By Vreixo Formoso and Thomas Schmitt
|
||
|
from team of libburnia-project.org)</DD>
|
||
|
</DL>
|
||
|
<DD>The source code of this software is independent of
|
||
|
cdrecord and mkisofs.</A>
|
||
|
</DD>
|
||
|
</P>
|
||
|
|
||
|
<P>
|
||
|
This program system has been tested on Intel/AMD Linux systems only.<BR>
|
||
|
For ports to other usable systems <A HREF="#contact">contact us</A>.
|
||
|
</P>
|
||
|
|
||
|
<HR>
|
||
|
|
||
|
<P>
|
||
|
<H2>Special features:</H2>
|
||
|
<UL>
|
||
|
<LI>
|
||
|
ISO 9660 formatter and burner for CD, DVD, BD-RE are fixely integrated.
|
||
|
</LI>
|
||
|
<LI>
|
||
|
Operates on an existing ISO image or creates a new one.
|
||
|
</LI>
|
||
|
<LI>
|
||
|
Copies files from filesystem into the ISO image.
|
||
|
</LI>
|
||
|
<LI>
|
||
|
Renames or deletes file objects in the ISO image.
|
||
|
</LI>
|
||
|
<LI>
|
||
|
Changes file properties in the ISO image.
|
||
|
</LI>
|
||
|
<LI>
|
||
|
Updates ISO subtrees incrementally to match given disk subtrees.
|
||
|
</LI>
|
||
|
<LI>
|
||
|
Can write result as completely new image to optical media or
|
||
|
filesystem objects.
|
||
|
</LI>
|
||
|
<LI>
|
||
|
Can write result as add-on session to appendable multi-session media,
|
||
|
to overwriteable media, to regular files, and to block devices.
|
||
|
</LI>
|
||
|
<LI>
|
||
|
Scans for optical drives, blanks re-useable optical media.
|
||
|
</LI>
|
||
|
<LI>
|
||
|
Suitable for:
|
||
|
CD-R, CD-RW, DVD-R, DVD-RW, DVD+R, DVD+R DL, DVD+RW, DVD-RAM, BD-RE.
|
||
|
</LI>
|
||
|
<LI>
|
||
|
Reads its instructions from command line arguments, dialog, and batch files.
|
||
|
</LI>
|
||
|
<LI>
|
||
|
Provides navigation commands for interactive ISO image manipulation.
|
||
|
</LI>
|
||
|
<LI>
|
||
|
Adjustable thresholds for abort, exit value, and problem reporting.
|
||
|
</LI>
|
||
|
|
||
|
</UL>
|
||
|
</P>
|
||
|
|
||
|
<P>
|
||
|
<H2>Command Examples:</H2>
|
||
|
<DL>
|
||
|
<DT>Get an overview of drives and their addresses</DT>
|
||
|
<DD>#<KBD> xorriso -devices</KBD></DD>
|
||
|
<DT>Being superuser avoids permission problems with /dev/srN resp. /dev/hdX .
|
||
|
</DT>
|
||
|
<DT>Ordinary users should then get granted rw access to the /dev files
|
||
|
as listed by option -devices.</DT>
|
||
|
<DT> </DT>
|
||
|
|
||
|
<DT>Options are either performed as program arguments or as dialog input.
|
||
|
Some options have a parameter list of variable length. This list has to
|
||
|
be terminated by word '--' or by the end of the input line. Option -add
|
||
|
may accept pathspecs of form target=source as known from program mkisofs.</DT>
|
||
|
|
||
|
<HR>
|
||
|
|
||
|
<DT>Get info about a particular drive and loaded media:</DT>
|
||
|
<DD>$<KBD> xorriso -indev /dev/sr0 -du / -- -toc 2>&1 | less</KBD></DD>
|
||
|
|
||
|
<DT>Make re-usable media writable again, delete any ISO 9660 image,
|
||
|
eventually prepare yet unused BD-RE:</DT>
|
||
|
<DD>$<KBD> xorriso -outdev /dev/sr0 -blank as_needed -eject all</KBD></DD>
|
||
|
|
||
|
<DT>
|
||
|
<HR>
|
||
|
</DT>
|
||
|
|
||
|
<DT>Write some directories into a new or existing ISO 9660 image:</DT>
|
||
|
<DD>$<KBD> xorriso -dev /dev/sr0 -add /home/me/sounds /home/me/pictures
|
||
|
</KBD></DD>
|
||
|
|
||
|
<DT>Check the result:</DT>
|
||
|
<DD>$<KBD> xorriso -indev /dev/sr0 -du / -- -toc 2>&1 | less</KBD></DD>
|
||
|
|
||
|
<DT>
|
||
|
<HR>
|
||
|
</DT>
|
||
|
|
||
|
<DT>Create new ISO-9660 filesystem image, compose content,
|
||
|
adjust permissions to make it publicly read-only,
|
||
|
write it to media and immediately eject media without
|
||
|
previously reloading the written image.
|
||
|
</DT>
|
||
|
<DD>$<KBD> cd /home/me</KBD></DD>
|
||
|
<DD>$<KBD> xorriso -outdev /dev/sr0 -blank as_needed \</KBD></DD>
|
||
|
<DD><KBD> -map /home/me/sounds /sounds \</KBD></DD>
|
||
|
<DD><KBD> -map /home/me/pictures /pictures \</KBD></DD>
|
||
|
<DD><KBD> -rm_r /sounds/indecent '/pictures/*private*' -- \</KBD></DD>
|
||
|
<DD><KBD> -cd / \</KBD></DD>
|
||
|
<DD><KBD> -add pictures/private/horses* -- \</KBD></DD>
|
||
|
<DD><KBD> -chmod_r a+r,a-w / -- \</KBD></DD>
|
||
|
<DD><KBD> -find / -type d -exec chmod a+x -- \</KBD></DD>
|
||
|
<DD><KBD> -volid SOUNDS_PICS_2008_01_16 \</KBD></DD>
|
||
|
<DD><KBD> -commit_eject all</KBD></DD>
|
||
|
<DT>
|
||
|
<HR>
|
||
|
</DT>
|
||
|
|
||
|
<DT>Load the previous session from media,
|
||
|
remove (i.e. hide) directory /sounds,
|
||
|
rename /pictures/private/horses,
|
||
|
add new directory trees /sounds and /movies,
|
||
|
disallow any access for group and others.
|
||
|
Finally write as additional session to media and eject:</DT>
|
||
|
<DD>$<KBD> xorriso -dev /dev/sr0 \</KBD></DD>
|
||
|
<DD><KBD> -rm_r /sounds -- \</KBD></DD>
|
||
|
<DD><KBD> -mv /pictures/private/horses /horse_show -- \</KBD></DD>
|
||
|
<DD><KBD> -map /home/me/prepared_for_dvd/sounds_dummy /sounds \</KBD></DD>
|
||
|
<DD><KBD> -map /home/me/prepared_for_dvd/movies /movies \</KBD></DD>
|
||
|
<DD><KBD> -chmod_r go-rwx / -- \</KBD></DD>
|
||
|
<DD><KBD> -volid SOUNDS_PICS_2008_01_17 \</KBD></DD>
|
||
|
<DD><KBD> -commit_eject all</KBD></DD>
|
||
|
<DT>
|
||
|
<HR>
|
||
|
</DT>
|
||
|
|
||
|
<DT>Merge the various sessions from old readable media into a single session
|
||
|
on new writeable media,
|
||
|
cleaning out all invalidated files and session overhead.
|
||
|
Touch / in order to mark the image as worth to be written.
|
||
|
<BR>
|
||
|
Important: -indev and -outdev have to be different drives.
|
||
|
</DT>
|
||
|
<DD>$<KBD> xorriso -indev /dev/dvd \</KBD></DD>
|
||
|
<DD><KBD> -alter_date a +0 / -- \</KBD></DD>
|
||
|
<DD><KBD> -outdev /dev/sr0 -blank fast \</KBD></DD>
|
||
|
<DD><KBD> -commit_eject all</KBD></DD>
|
||
|
|
||
|
<DT>
|
||
|
<HR>
|
||
|
</DT>
|
||
|
|
||
|
<DT>Dialog mode accepts one or more options per line. An option and all its
|
||
|
arguments have to be given in one single line. Command -end stops the program
|
||
|
run. It will write eventually pending changes to media, if that has not
|
||
|
already been done by a previous -commit.</DT>
|
||
|
<DD>$<KBD> xorriso -dialog on</KBD></DD>
|
||
|
<DD><KBD>enter option and arguments :</KBD></DD>
|
||
|
<DD><KBD><B>-dev /dev/sr0</B></KBD></DD>
|
||
|
<DD><KBD>enter option and arguments :</KBD></DD>
|
||
|
<DD><KBD><B>-map /home/me/prepared_for_dvd/sounds_dummy /sounds</B></KBD></DD>
|
||
|
<DD><KBD>enter option and arguments :</KBD></DD>
|
||
|
<DD><KBD><B>-map /home/me/prepared_for_dvd/movies /movies</B></KBD></DD>
|
||
|
<DD>Available navigation commands: -cd, -ls, -du, -find</DD>
|
||
|
<DD><KBD>enter option and arguments :</KBD></DD>
|
||
|
<DD><KBD><B>-commit</B></KBD></DD>
|
||
|
<DD>... perform further commands and finally do:</DD>
|
||
|
<DD><KBD>enter option and arguments :</KBD></DD>
|
||
|
<DD><KBD><B>-end</B></KBD></DD>
|
||
|
|
||
|
<DT>
|
||
|
<HR>
|
||
|
</DT>
|
||
|
|
||
|
<DT>The following command can be run on blank media to create a
|
||
|
copy of the mentioned disk directory trees, and it can be run on appendable
|
||
|
media to perform a minimal set of change operations which update the
|
||
|
old ISO copies to match the new disk trees.
|
||
|
Older states can be retrieved by help of mount option "session=" from CD-R[W],
|
||
|
by help of "sbsector=" from other media.
|
||
|
So this constitutes true incremental backup.
|
||
|
<BR>
|
||
|
The copies will be complete, except all file names ending
|
||
|
with ".o" or ".swp" which are excluded by options -not_leaf.
|
||
|
</DT>
|
||
|
<DD>$<KBD> xorriso -dev /dev/sr0 \</KBD></DD>
|
||
|
<DD><KBD> -volid PROJECTS_MAIL_"$(date '+%Y_%m_%d_%H%M%S')" \</KBD></DD>
|
||
|
<DD><KBD> -not_leaf '*.o' -not_leaf '*.swp' \</KBD></DD>
|
||
|
<DD><KBD> -update_r /home/thomas/open_source_projects /open_source_projects \</KBD></DD>
|
||
|
<DD><KBD> -update_r /home/thomas/personal_mail /personal_mail \</KBD></DD>
|
||
|
<DD><KBD> -commit -toc -eject all</KBD></DD>
|
||
|
|
||
|
<DT>
|
||
|
<HR>
|
||
|
</DT>
|
||
|
|
||
|
<DT>In batch mode it is possible to operate xorriso in a pipeline
|
||
|
with an external consumer of the generated ISO image. Any message
|
||
|
output will be redirected to stderr in this case.</DT>
|
||
|
<DD>$<KBD> xorriso -outdev - ...other.options... | consumer</KBD></DD>
|
||
|
|
||
|
<DT>
|
||
|
<HR>
|
||
|
</DT>
|
||
|
|
||
|
|
||
|
<DT>Get overview of the options:</DT>
|
||
|
<DD>$<KBD> <A HREF="xorriso_help">xorriso -help</A></KBD></DD>
|
||
|
|
||
|
<DT>Read the detailed manual page:</DT>
|
||
|
<DD>$<KBD> <A HREF="man_1_xorriso.html">man xorriso</A></KBD></DD>
|
||
|
</DL>
|
||
|
|
||
|
|
||
|
Testers wanted who are willing to risk some double layer DVD media or
|
||
|
are interested in using BD-R media.
|
||
|
|
||
|
</P>
|
||
|
|
||
|
<HR>
|
||
|
<A NAME="download"></A>
|
||
|
<P>
|
||
|
<DL>
|
||
|
<DT><H3>Download as source code (see README):</H3></DT>
|
||
|
<DD><A HREF="xorriso-0.1.6.pl00.tar.gz">xorriso-0.1.6.pl00.tar.gz</A>
|
||
|
(980 KB).
|
||
|
</DD>
|
||
|
</DL>
|
||
|
</DD>
|
||
|
</DL>
|
||
|
<DL><DT>Documentation:</DT>
|
||
|
<DD><A HREF="README_xorriso">README</A> about installation and drive setup</DD>
|
||
|
<DD><A HREF="xorriso_help">xorriso -help</A> gives an overview of options</DD>
|
||
|
<DD><A HREF="man_1_xorriso.html">man xorriso</A> is the manual page</DD>
|
||
|
</DL>
|
||
|
<A NAME="contact"></A>
|
||
|
<DL><DT>Contact:</DT>
|
||
|
<DD>Thomas Schmitt, <A HREF="mailto:scdbackup@gmx.net">scdbackup@gmx.net</A></DD>
|
||
|
<DD>libburn development mailing list,
|
||
|
<A HREF="mailto:libburn-hackers@pykix.org">libburn-hackers@pykix.org</A></DD>
|
||
|
</DL>
|
||
|
<DL><DT>License:</DT>
|
||
|
<DD><A HREF="COPYING_xorriso">GPL version 2</A>,
|
||
|
an <A HREF="http://www.opensource.org/">Open Source</A> approved license</DD>
|
||
|
<DD> </DD>
|
||
|
</DL>
|
||
|
</P>
|
||
|
|
||
|
<HR>
|
||
|
<P>
|
||
|
Bug fixes towards xorriso-0.1.4.pl00:
|
||
|
<UL>
|
||
|
<LI>-update_r and others did not work properly with relative paths</LI>
|
||
|
</UL>
|
||
|
</P>
|
||
|
<P>
|
||
|
Enhancements towards previous stable version xorriso-0.1.4.pl00:
|
||
|
<UL>
|
||
|
<LI>Support for BD-RE</LI>
|
||
|
<LI>New options -map and -map_single</LI>
|
||
|
<LI>New options -not_paths, -not_leaf, -not_list, -not_mgt, -as mkisofs -m</LI>
|
||
|
<LI>Emulated -toc on overwriteable media, new -toc layout with volume id</LI>
|
||
|
<LI>New option -load makes alternative sessions accessible</LI>
|
||
|
<LI>New -blank and -format modes 'as_needed'</LI>
|
||
|
<LI>New option -list_formats and -format mode 'by_index_' </LI>
|
||
|
</UL>
|
||
|
</P>
|
||
|
|
||
|
<HR>
|
||
|
|
||
|
<P>
|
||
|
<DL>
|
||
|
<DT><H3>Development snapshot, version 0.1.7 :</H3></DT>
|
||
|
<DD>Bug fixes towards xorriso-0.1.6.pl00:
|
||
|
<UL>
|
||
|
<LI>-indev -outdev modifying to overwriteable target yielded unmountable results</LI>
|
||
|
<!--
|
||
|
<LI>- none yet -</LI>
|
||
|
-->
|
||
|
</UL>
|
||
|
</DD>
|
||
|
<DD>Enhancements towards stable version 0.1.6.pl00:
|
||
|
<UL>
|
||
|
<LI>New options -osirrox and -cpx</LI>
|
||
|
<LI>New option -stream_recording</LI>
|
||
|
<!--
|
||
|
<LI>- none yet -</LI>
|
||
|
-->
|
||
|
</UL>
|
||
|
</DD>
|
||
|
<DD> </DD>
|
||
|
<DD><A HREF="README_xorriso_devel">README 0.1.7</A>
|
||
|
<DD><A HREF="xorriso_help_devel">xorriso_0.1.7 -help</A></DD>
|
||
|
<DD><A HREF="man_1_xorriso_devel.html">man xorriso (as of 0.1.7)</A></DD>
|
||
|
<DD> </DD>
|
||
|
<DT>If you want to distribute development versions of xorriso, then use
|
||
|
this tarball which produces static linking between xorriso and the
|
||
|
libburnia libraries.
|
||
|
</DT>
|
||
|
<DD>Source (./bootstrap is already applied, build tested,
|
||
|
installation see README)
|
||
|
</DD>
|
||
|
<DD>
|
||
|
<A HREF="xorriso-0.1.7.tar.gz">xorriso-0.1.7.tar.gz</A>
|
||
|
(980 KB).
|
||
|
</DD>
|
||
|
<DT>A dynamically linked development version of xorriso can be obtained
|
||
|
from repositories of
|
||
|
<A HREF="http://libburnia-project.org"> libburnia-project.org</A>.
|
||
|
xorriso is part of libisoburn/trunk and will get built by its "make".
|
||
|
</DT>
|
||
|
<DT>Be warned that the libraries in SVN and bzr are development versions with
|
||
|
possibly unstable API/ABI enhancements. Do not distribute development
|
||
|
versions for dynamic linking. Only release versions are safe for that.
|
||
|
</DT>
|
||
|
<DD>Download: <KBD><B>svn co http://svn.libburnia-project.org/libburn/trunk libburn</B>
|
||
|
</KBD></DD>
|
||
|
<DD>Install: <KBD><B>cd libburn ; ./bootstrap ; ./configure --prefix /usr ; make ; make install</B>
|
||
|
</KBD></DD>
|
||
|
<DD>Download: <KBD><B>bzr branch lp:libisofs</B></KBD></DD>
|
||
|
<DD>Install: <KBD><B>cd libisofs ; ./bootstrap ; ./configure --prefix /usr ; make ; make install</B>
|
||
|
</KBD></DD>
|
||
|
<DD>Download: <KBD><B>svn co http://svn.libburnia-project.org/libisoburn/trunk libisoburn</B>
|
||
|
</KBD></DD>
|
||
|
<DD>Install: <KBD><B>cd libisoburn ; ./bootstrap ; ./configure --prefix /usr ; make ; make install</B>
|
||
|
</KBD></DD>
|
||
|
<DD>Build of SVN versions needs <A HREF="http://sources.redhat.com/autobook/">
|
||
|
autotools</A> of at least version 1.7 installed.
|
||
|
But after the run of <KBD>./bootstrap</KBD>, only
|
||
|
vanilla tools like make and gcc are needed.</DD>
|
||
|
</DD>
|
||
|
<DD> </DD>
|
||
|
|
||
|
</DL>
|
||
|
</P>
|
||
|
|
||
|
<HR>
|
||
|
|
||
|
<P>
|
||
|
Many thanks to Derek Foreman and Ben Jansens for starting libburn.
|
||
|
<BR>
|
||
|
Very special thanks to Andy Polyakov whose
|
||
|
<A HREF="http://fy.chalmers.se/~appro/linux/DVD+RW/tools">dvd+rw-tools</A>
|
||
|
provide the libburnia project with invaluable examples on how to deal
|
||
|
with DVD media and how to emulate multi-session on overwriteable media.
|
||
|
</P>
|
||
|
|
||
|
<HR>
|
||
|
|
||
|
|
||
|
<CENTER><FONT SIZE=+0>
|
||
|
<!-- <A NAME="bottom" HREF="main_ger.html#bottom">deutsch (german)</A>
|
||
|
<BR><BR>
|
||
|
-->
|
||
|
<BR><BR>
|
||
|
<FONT SIZE=+0>Enjoying free Open Source hosting by <A HREF="http://www.webframe.org">www.webframe.org</A><BR>
|
||
|
<A HREF="http://www.webframe.org">
|
||
|
<IMG SRC="msfree.gif" ALT="100 % Microsoft free" BORDER=0></A><BR>
|
||
|
and by <A HREF="http://sourceforge.net">sourceforge.net</A><BR>
|
||
|
<A href="http://sourceforge.net">
|
||
|
<IMG src="sflogo-88-1.png" BORDER="0" ALT="SourceForge Logo"></A>
|
||
|
<!-- on sourceforge use : <IMG src="http://sourceforge.net/sflogo.php?group_id=16010" width="88" height="31" border="0" alt="SourceForge Logo"></A> -->
|
||
|
</FONT></CENTER>
|
||
|
<HR>
|
||
|
<DL>
|
||
|
<DT>Links to my other published software projects :</DT>
|
||
|
<DD><A HREF=http://scdbackup.webframe.org/cdrskin_eng.html>
|
||
|
cdrskin, a cdrecord emulator</A></DD>
|
||
|
<DD><A HREF=http://scdbackup.webframe.org/main_eng.html>
|
||
|
scdbackup, multi volume CD backup</A></DD>
|
||
|
<DL><DD><A HREF=http://scdbackup.sourceforge.net/main_eng.html>
|
||
|
(a second source of above)</A></DD></DL>
|
||
|
<DD><A HREF=http://stic.sourceforge.net>Some Tools for Image Collectors</A></DD>
|
||
|
<DD><A HREF=http://scdbackup.webframe.org/pppoem>
|
||
|
pppoem, a DSL throughput monitor (mainly for Linux kernel 2.4)</A></DD>
|
||
|
</DL>
|
||
|
<BR><BR>
|
||
|
Legal statement: This website does not serve any commercial purpose.<BR>
|
||
|
<BR><BR>
|
||
|
</FONT>
|
||
|
</BODY>
|
||
|
</HTML>
|